我遇到了和这个类似的问题。 使用cancel()方法从AlarmManager中删除闹钟 - Android
我试图在应用程序的不同时刻调用两个不同的方法来创建和删除闹钟。然而,当我调用AlarmManager的cancel()方法时,闹钟并没有被删除。
为了设置:
Intent myIntent = new Intent(getApplicationContext(),
SessionReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
getApplicationContext(), 1, myIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, now.getTimeInMillis(),
pendingIntent);
为了删除:
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent myIntent = new Intent(getApplicationContext(),
SessionReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
getApplicationContext(), 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(pendingIntent);
但这并不会删除已注册的警报。
先谢谢您。
AlarmManager.cancel(int requestCode)
?操作系统会处理底层细节,如应用程序命名空间等。这肯定会是一个更加用户友好的 API。 - Someone Somewhere