我有这个方法,我调用它来按顺序安排事件
public void schedule(Event event) {
SharedPreferences preferences = context
.getSharedPreferences("myapp", 4);
int numberofintent = preferences.getInt("numberofintent", 0);
AlarmManager mgr = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
if (event.dtstart > today.getTimeInMillis() && event.isreminder) {
Intent i = new Intent(context, ReminderPopUp01.class);
i.putExtra("id", Long.toString(event._id));
i.setAction("com.blah.Action");
Log.e("id in scheduler",Long.toString(event._id));
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity(context,
numberofintent, i, 0);
mgr.set(AlarmManager.RTC_WAKEUP, event.dtstart, pi);
numberofintent++;
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("numberofintent", numberofintent);
editor.commit();
}
但我得到一个奇怪的结果:不同时间的不同 PendingIntents 被正确调度,
但他们携带所有相同的额外“id”!(但每个事件的id不同)
为什么会这样?
编辑 编辑 编辑 编辑 编辑
请注意 RequestCode 总是不同的......