我用户设置一个警报,它需要发送一个意图来设置警报,但是用户可以拥有尽可能多的警报但每个条目可以有14个意图用于启动警报,一个用于一天结束时说出来用户想要删除它需要发出的警报来删除它们但是它们需要完全相同,所以我该怎么做。
Intent endAlarmIntent = new Intent(setAndroidAlarmContext, EndTimeAndroid.class);
PendingIntent endIntent = PendingIntent.getBroadcast(setAndroidAlarmContext, 14 , endAlarmIntent, 0);
setAlarm.setRepeating(AlarmManager.RTC_WAKEUP, endSun, daysBetweenAlrm , endIntent);
上面意图中的14是如此我以后可以找到它所以当我结束它我有意图14在其中但问题是,如果有两个意图,其中两个可能有14所以它会超越它是什么是停止此操作的最佳方法是,获取ramdom数字并将其保存到数据库并在删除意图时将其发送到同一个数据库中?
答案 0 :(得分:0)
在我的应用中,用户也会生成未定义数量的警报,因此对于每个警报PendingIntent
,我将系统时间设置为int
,如此
int uniqueCode = (int)System.currentTimeMillis();
为了生成一个有点随机的唯一标识符(long
被截断为int
,但没关系。)
并将其设置为标识它的PendingIntent
唯一代码,如下所示(使用您的代码):
PendingIntent endIntent = PendingIntent.getBroadcast(setAndroidAlarmContext, uniqueCode , endAlarmIntent, 0);
然后在我的数据库中,我有alarm_id
的字段以及该警报的任何其他数据,以便我可以随时更新或取消该警报。
我也会做@ravuya所说的并使用一个Intent
并通过附加内容传递参数来告诉它是什么类型的警报。