我有一个可以由用户创建并且可以由用户禁用的警报。当用户禁用警报时,我只需使用取消警报AlarmManager
并将警报时间存储在某处。
现在,当用户重新启用闹钟时,我会创建闹钟并将存储的时间设置为闹钟。问题是当我使用存储的时间重新创建警报时,onReceive()
警报广播的方法会立即被调用。
我将警报设置如下:
alarmManager.setRepeating(AlarmManager.RTC, time, AlarmManager.INTERVAL_DAY,
PendingIntent.getBroadcast(
this, alarmUniqueCode, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
当用户单击禁用时如何禁用警报:
sender = PendingIntent.getBroadcast(this, 1, intent, 0);
alarmManager.cancel(sender);
我在清单文件中添加了警报接收器,如下所示:
<receiver
android:name="com.sign.android.myscheduler.app.AlarmReceiver"
android:enabled="true"
android:exported="true" >
</receiver>
还有一个问题:当我禁用警报时,我调用了取消方法。我是否也需要注销广播接收器?如果是,那么如果我有两个不同的警报怎么办?如何只为一个警报取消注册广播接收器?