我使用下面的代码创建闹钟。
public static void RegisterForAlarmEvent(Context ct, long intervel)
{
Intent intent = new Intent(ct, AlarmReceiver.class);
PendingIntent mAlarmSender = PendingIntent.getBroadcast(ct,
constants.ALARM_ID, intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager am = (AlarmManager) ct
.getSystemService(ct.ALARM_SERVICE);
Long totalTime = getCurrentTimeinMiliSeconds() + intervel;
am.set(AlarmManager.RTC, totalTime , mAlarmSender);
}
如果警报已经注册,我需要下次检查&它被触发了。如果它被触发,那么我只需要重新注册。
所以,如果alaram已经注册,我就这样检查一下。
boolean alarmUp = (PendingIntent.getBroadcast(ct, id, intent, PendingIntent.FLAG_NO_CREATE)!= null);
如果我使用alaramevent方法调用寄存器&检查警报已经注册我得到NULL,字面上它应该返回NULL,一旦警报执行正确吗?
如何检查闹钟是否已经被触发?
答案 0 :(得分:0)
根据文档 FLAG_NO_CREATE :
Flag for use with getActivity, getBroadcast, and getService: if the described PendingIntent does not already exist, then simply return null instead of creating it.
因此,如果已创建挂起的intent,则它将返回对先前挂起的intent的引用。如果没有,那么它将返回null。
你的问题的答案是保持一些共享偏好值并在广播接收器中改变该值。基于该值