我正在使用AlarmManager运行定期后台任务:
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 10 * 60 * 1000, pendingIntent);
我放了一个标志PendingIntent.FLAG_UPDATE_CURRENT
,但如果我再次运行此代码,我担心会重新编写我的日程安排。问题:
答案 0 :(得分:1)
是否会重置时间,我将不得不等待10分钟才能收到活动?
是的,它会。根据文件:
如果已经为同一个IntentSender安排了警报,则首先取消。
按照
有没有办法检查我的警报任务时间表是否已设定?
是的,there is有几种解决方案,您可以查看。
而且,顺便说一句,请注意setRepeating
不准确。
注意:从API 19开始,所有重复警报都不准确。如果您的应用程序需要精确的交付时间,那么它必须使用一次性精确警报,每次重新安排如上所述。 targetSdkVersion早于API 19的旧应用程序将继续将所有警报(包括重复警报)视为完全警报。