如何解决android setRepeatingAlarm 没有被取消
我花了很长时间试图弄清楚为什么我的重复闹钟 setRepeating()
不会被取消,但使用 setExact
的非重复闹钟会被取消。
这就是我设置闹钟的方式。
Intent intent = new Intent(context.getApplicationContext(),NotificationAlarmReceiver.class);
intent.setAction(Integer.toString(actionCode));
PendingIntent pendingIntent = PendingIntent.getbroadcast(context.getApplicationContext(),actionCode,intent,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getApplicationContext().getSystemService(Context.ALARM_SERVICE);
long time = System.currentTimeMillis() + delaySeconds* 1000L;
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,time,repeatIntervalSeconds,pendingIntent);
这是我尝试取消的方式:
protected void cancelScheduledReminderAlarms(Context context,int actionCode,String notificationType) {
Logger.d("cancelScheduledAlarms PendingIntent ACTION = " + actionCode + " Notification type = "+ notificationType);
Intent intent = new Intent(context.getApplicationContext(),NotificationAlarmReceiver.class);
intent.setAction(Integer.toString(actionCode));
PendingIntent pendingIntent = PendingIntent.getbroadcast(context.getApplicationContext(),PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarms = (AlarmManager) context.getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarms.cancel(pendingIntent);
pendingIntent.cancel();
}
我已经验证了两种方法中的 ActionCode 都是 700102。
感谢任何帮助。 提前致谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。