检查AlarmManager任务是否正在进行中

时间:2017-01-22 16:50:18

标签: java android alarmmanager android-pendingintent android-backup-service

我正在使用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,但如果我再次运行此代码,我担心会重新编写我的日程安排。问题:

  • 是否会重置时间,我必须等待10分钟才能收到活动?
  • 有没有办法检查我的警报任务时间表是否已设定?

1 个答案:

答案 0 :(得分:1)

  

是否会重置时间,我将不得不等待10分钟才能收到活动?

是的,它会。根据文件:

  

如果已经为同一个IntentSender安排了警报,则首先取消

按照

  

有没有办法检查我的警报任务时间表是否已设定?

是的,there is有几种解决方案,您可以查看。

而且,顺便说一句,请注意setRepeating 不准确

  

注意:从API 19开始,所有重复警报都不准确。如果您的应用程序需要精确的交付时间,那么它必须使用一次性精确警报,每次重新安排如上所述。 targetSdkVersion早于API 19的旧应用程序将继续将所有警报(包括重复警报)视为完全警报。