我发现了许多关于如何使用AlarmManager(定期或单个)发出警报的示例和问题,但没有类似于我需要的内容。
我的用户可以安排一定数量的事件(即要做的事情),并在计划开始前一天发出单次警报,每个事件都会被触发(显示通知) 。这很简单。 我的问题是这个预定的开始时间可以改变,因此警报也应该移动。
我正在考虑删除旧警报,并考虑新的计划启动创建一个新警报。知道我可以使用alarmMgr.cancel(alarmIntent)
删除警报,如何删除与重新安排事件相关的特定警报?我应该以某种方式使每个alarmIntent独一无二吗?
或者有一种更好的方式我没有考虑(除了使用Google Calendar API来安排和重新安排那里的活动,并让它管理通知)?
答案 0 :(得分:0)
使用set()API
安排闹钟时public void set (int type, long triggerAtMillis, PendingIntent operation)
在最后一个参数中,您可以使用getBroadcast
提及请求代码public static PendingIntent getBroadcast (Context context, int requestCode, Intent intent, int flags)
这方面的一个例子是:
alarm.set(AlarmManager.RTC_WAKEUP, time, PendingIntent.getBroadcast(mContext, id, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
如果您想取消或重新安排,可以使用' id'指定哪个警报。