我有一个应用程序,允许用户创建提醒,以便将来提醒他们。我遇到的问题是,当用户创建多个提醒时,待处理的意图仅触发创建的最新提示,并显示最早的提醒内容,即:
任务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);
}
}
如何确保每个提醒都是唯一的,并按时获得正确的时间?
答案 0 :(得分:2)
您需要为0
参数提供requestCode
以外的内容。尝试将其作为每个请求的唯一ID。