AlarmManager取消()不起作用

时间:2015-05-09 16:52:28

标签: android alarmmanager android-pendingintent

这是我在这里的第一篇文章。我四处寻找这个话题,但似乎没有任何帮助。当下面的代码被执行时,警报仍然会消失,当它不应该...时,意味着我无法取消警报,使我的应用程序对API低于21无用。任何想法为什么?请帮忙!我应该提一下,当我使用Android Studio中的API22模拟器(nexus one)尝试此代码时,它可以工作,但是当我使用它与genymotion的API18模拟器(samsung s3)时却没有。

Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 8, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
am.cancel(pendingIntent);

1 个答案:

答案 0 :(得分:0)

在您拨打set()之前,您似乎没有给cancel()足够的时间设置闹钟。

cancel()的呼叫置于单独的代码块中,以便在set()之后不立即调用它,它应该可以正常工作。