我正在创建一个带有小部件的应用程序。该小部件通过 AlarmManager 每 10 秒更新一次,但我希望 AlarmManager 在屏幕关闭时停止,以防止可能的电池耗尽。我能怎么做?我尝试使用 PowerManager 但没有成功。我在 WidgetProvider 中实现了 AlarmManager,并通过广播调用类 WidgetReceiver,它更新了值
-小工具提供者:
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
AlarmManager alarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC,
System.currentTimeMillis() + 1000, 1000 * 5, update(context));
}
public static PendingIntent update(Context context) {
Intent intent = new Intent();
intent.setAction("com.aaa.intent.action.UPDATE_TIME");
if (service == null) {
service = PendingIntent.getBroadcast(context, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
}
return service;
}
-小部件接收器:
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.gabriele.intent.action.UPDATE_TIME")) {
updateWidget(context);
}
}
private void updateWidget(Context context) {
update my widget
}