【发布时间】:2015-06-11 01:37:09
【问题描述】:
我有一个应用程序允许用户创建提醒以提醒他们将来。我遇到的问题是,当用户创建多个提醒时,未决意图仅在创建的最新提醒时触发,并显示最早的提醒内容,即:
任务 1,设置为下午 4 点
任务 2,设置为下午 5 点
任务 3,设置为下午 6 点
直到下午 6 点才会出现提醒,此时会显示任务 1。
我认为这是由于 PendingIntent 缺乏唯一性:
public class ReminderManager {
private Context mContext;
private AlarmManager mAlarmManager;
public ReminderManager(Context context) {
mContext = context;
mAlarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
}
public void setReminder(Long taskId, Calendar when) {
Intent i = new Intent(mContext, OnAlarmReceiver.class);
i.putExtra(RemindersDbAdapter.KEY_ROWID, (long)taskId);
PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, i, PendingIntent.FLAG_ONE_SHOT);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi);
}
}
如何确保每条提醒都是独一无二的,并能按时获得正确的时间?
【问题讨论】:
标签: android alarmmanager android-pendingintent