gpt4 book ai didi

android - 每分钟更新一次的电池高效 android 小部件

转载 作者:行者123 更新时间:2023-11-30 03:30:05 24 4
gpt4 key购买 nike

我知道这可能是重复的,但我还没有找到具体的答案? (关于如何强制小部件每秒更新的部分答案,但它不是我所追求的全部......)

  1. 我需要一个每分钟更新一次的小部件。

  2. 如何为此目的制作电池和 CPU 和 RAM 高效小部件? (数据将从互联网上获取并解析,然后再显示给用户(需要完成少量数据和处理。))

  3. 如果用户在屏幕上显示小部件,我是否应该创建一个在 BOOT 上运行的服务,并让该服务安排一个警报管理器来唤醒更新小部件的服务?

此外,如果屏幕被锁定或关闭以节省电量,我想暂停此服务...

最佳答案

这正是我做类似事情的方式。我创建了一个服务(IntentService 如果您不需要任何复杂的东西),然后将其注册到警报管理器。

long interval = intervalMinutes * 60 * 1000;
long firstTime = Calendar.getInstance().getTimeInMillis();

Intent i = new Intent(ctx, AlarmService.class);
// Use the widget ID to update only one widget at a time.
i.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id);
PendingIntent mAlarmSender = PendingIntent.getService(ctx, id, i, PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager am = (AlarmManager) ctx.getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, firstTime, interval, mAlarmSender);

作为您的服务或 IntentService 的 AlarmService.class。

对于启动事件,您可以创建一个 BroadcastReceiver 并管理一个 android.intent.action.BOOT_COMPLETED 操作,您可以在其中注册警报。

您可以在您的 AndroidManifest 中注册该事件:

<receiver android:name=".BroadcastReceiverWidget" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>

关于android - 每分钟更新一次的电池高效 android 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17593641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com