如果设备已经处于唤醒状态,则AlarmManager.RTC不会触发

时间:2016-03-08 06:24:51

标签: android broadcastreceiver alarmmanager

在用于USER_PRESENT广播的广播接收器中,我设置了这样的闹钟:

Intent intentAfterAlarmFire = new Intent(context, ActivityAfterAlarmFire.class);
        PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 1234567, intentAfterAlarmFire, 0);
AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        alarmMgr.set(AlarmManager.RTC, myTime, alarmIntent);

当用户在闹钟时间过后解锁设备时,它按预期工作,但是,如果用户在闹钟时间之前将设备唤醒并且一直使用它直到闹钟时间过去,它就不会触发闹钟

如果设备已经处于唤醒状态,那么AlarmManager.RTC(非唤醒)无论如何都不应该开火吗?

感谢。

1 个答案:

答案 0 :(得分:0)

// It'll fire every 5 seconds, you can set your own time in place of cal.getTimeInMillis()    

Calendar cal = Calendar.getInstance();
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 5000, alarmIntent);