目前我有这段代码:
public static void setupAlarm(Context context) {
Intent myIntent = new Intent(context, Receiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
0, myIntent, PendingIntent.FLAG_NO_CREATE);
if (pendingIntent != null) {
return;
} else {
pendingIntent = PendingIntent.getBroadcast(context, PENDING_INTENT_RETRY, myIntent,
PendingIntent.FLAG_ONE_SHOT);
}
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.MINUTE, 2);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
我希望的是只使用一次待处理意图并等待触发。如果在此期间有人要求新的闹钟,如果闹钟已经存在,我不想设置任何内容。现在我的问题是:在第一个闹钟之后,由于 ONE_SHOT 标志,待处理意图将被删除,但是我能否重新创建待处理意图呢?