在Android中创建警报

时间:2015-01-10 07:33:42

标签: android android-alarms

我使用下面的代码创建闹钟。

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,一旦警报执行正确吗?

如何检查闹钟是否已经被触发?

1 个答案:

答案 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。

你的问题的答案是保持一些共享偏好值并在广播接收器中改变该值。基于该值