我想创建三个名为Reminder1,Reminder2,Reminder3的警报。 我知道,我可以使用不同的requestCode为上述三个创建多个警报。相应的代码嵌入在
下面private void startReminderAlarm(int id, Calendar from_date, long interval) {
// TODO Auto-generated method stub
Intent remIntent;
PendingIntent pendingIntent;
AlarmManager manager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
remIntent = new Intent(mContext, ReminderReceiver.class);
remIntent.putExtra("ID", id);
pendingIntent = PendingIntent.getBroadcast(mContext, id, remIntent, 0);
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, from_date.getTimeInMillis(), interval, pendingIntent);
Toast.makeText(mContext, "Alarm Set for id" + id, Toast.LENGTH_SHORT).show();
Log.d(TAG, "Alarm Set for id: " + id);
}
根据提醒的ID,我开始每个闹钟。这工作正常。我的问题是,
1)每日早晨设置Reminder1闹钟。
2)Reminder2设置为每日两次。
3)Reminder3将设置为每日三次。
第一种情况,不会产生问题,因为它只能用相应的id设置一次。
第二种情况,如果我创建了两个带有相应id的警报,则最后一个仅持续存在。第一个将被丢弃。
第3种情况,如果我用相应的id创建三个警报,则最后一个仅持续存在。第一和第二将被丢弃。
我想创建2个或3个具有特定ID的单独警报。
请建议我解决此问题的任何解决方案。
答案 0 :(得分:0)
使用intent.setData
来区分意图。那是
remIntent = new Intent(mContext, ReminderReceiver.class);
remIntent.putExtra("ID", id);
remIntent.setData(Uri.parse("reminder:"+id+"/"+from_date.getTimeInMillis()+"/"+interval));