在什么条件设置 - 重复警报取消在Android?

时间:2014-06-09 06:57:41

标签: android android-intent android-activity

我在android中创建应用程序,每20分钟安排一次警报。但他们在预定的5或8次后被取消或无法工作。系统取消预定的警报后是否有任何条件。

Calendar cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, 20);
// Create a new PendingIntent and add it to the AlarmManager
Intent my123intent = new Intent(context, PolicyFormatDownloader.class);
my123intent.putExtra(commonGlobalVariables.IS_CALL_FROM_ALARM, true);
my123intent.putExtra(commonGlobalVariables.IS_CALL_MANUALLY, false);
PendingIntent pendingIntent = PendingIntent.getService(context, 12345,my123intent,PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
am.cancel(pendingIntent);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ (60 * 1000 * 20), 60 * 1000 * 20,  pendingIntent);

请告诉我系统取消或清除警报的条件。 提前感谢你。

1 个答案:

答案 0 :(得分:1)

可以在以下两个条件下清除警报:

  1. 在设备重启时 使用警报管理器设置的所有警报将在设备重启时删除

  2. 如果您创建具有相同ID的待处理意图 在创建具有相同ID值的类似PI(在本例中为12345)时,将覆盖先前的PI。