我正在使用Alarm Manager与Service一起更新小部件实例。在做这件事的时候,我想我忽略了一些重要的地方。
我就是这样设置Alarm Manager的
public class MyWidget extends AppWidgetProvider {
public void onEnabled(Context ctx) {
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyService.class);
pi = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
// Repeat value depends on preferences.
Long repeat = Long.parseLong(prefs.getString("update_preference", "600"));
alarmManager.setRepeating(AlarmManager.RTC, SystemClock.elapsedRealtime(), 1000*repeat, pi);
}
@Override
public void onDisabled(Context context) {
super.onDisabled(context);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyService.class);
PendingIntent pi = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(pi);
}
}让我解释一下:
任何帮助或建议都会很好。
发布于 2012-05-14 15:57:31
你的一些问题不太清楚,所以我会尽我最大的理解去回答:
setRepeating调用更改为使用AlarmManager.RTC_WAKEUP而不是AlarmManager.RTC。阅读更多这里Intent.ACTION_BOOT_COMPLETED注册广播接收器。这必须注册为接收器在您的应用程序清单。阅读更多的这里。https://stackoverflow.com/questions/10490612
复制相似问题