【发布时间】:2016-08-31 19:56:24
【问题描述】:
我正在使用 targetSdkVersion 24。我设置了这样的警报:
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra("REQUEST_CODE", CHEW_REQ_CODE);
intent.putExtra("CHEW_TEXT", chewText);
PendingIntent pIntent = PendingIntent.getBroadcast(context, CHEW_REQ_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + interval, interval, pIntent);
其中间隔为 15 x 60 x 1000 = 15 分钟。此警报在首选项中的复选框中设置。在运行 API 23 的 HTC One 上,警报按预期响起。但是,当我通过取消选中首选项来取消此警报时,警报会一直响起。这是我的取消代码:
if (alarmMgr != null) {
Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra("REQUEST_CODE", CHEW_REQ_CODE);
intent.putExtra("CHEW_TEXT", chewText);
PendingIntent pIntent = PendingIntent.getBroadcast(context, CHEW_REQ_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmMgr.cancel(pIntent);
}
我错过了什么?
【问题讨论】:
-
您确定取消选中首选项时会调用该代码吗?
标签: android alarmmanager