AlarmManager cancel()不会停止我的警报

时间:2018-03-21 14:43:14

标签: android widget android-widget alarmmanager android-alarms

欢迎所有

当我的小部件添加到屏幕时,我使用此代码创建闹钟:

    alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(context, WidgetAlarmReceiver.class);
    intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
    alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
    alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 60000, 60000, alarmIntent);

当屏幕上没有更多小部件时,我会使用此代码删除闹钟。 我在AlarmReceiver类的onReceive方法上调用此代码。也许这就是问题?

    AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    Intent mIntent = new Intent(context, WidgetAlarmReceiver.class);
    intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
    PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, mIntent, 0);
    alarmMgr.cancel(alarmIntent);

问题是,即使进行取消呼叫,警报仍然每分钟都会被呼叫。

有什么问题? startAlarm代码不再被调用,所以我不明白为什么取消不起作用并且警报一次又一次地被调用。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

最后我解决了从取消方法本身的警报外取消警报的问题。也许警报无法取消或其他事情。