屏幕关闭时如何防止触发警报?

时间:2016-04-12 23:44:24

标签: android alarmmanager

当设备处于唤醒状态时,我尝试在特定时间间隔 中触发警报,这是我用来实现此目的的代码:

AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME,
                SystemClock.elapsedRealtime(),
                INTERVAL_ONE_MINUTE,
                pi);

考虑关于 AlarmManager.ELAPSED_REALTIME 的文档,当设备屏幕关闭时,不应该触发警报(如果我没有弄错)

  

SystemClock.elapsedRealtime()中的闹钟时间(自启动以来的时间,包括睡眠)。此警报不会唤醒设备;如果它在设备处于睡眠状态时熄灭,则在下次设备唤醒时才会发送

与我的预期相反,当屏幕关闭时系统会触发警报,我在这里遗漏了什么吗?

2 个答案:

答案 0 :(得分:2)

你为什么不使用

LD_LIBRARY_PATH

在那里开火

protected void onPause();

答案 1 :(得分:1)

当他们谈到设备进入 sleep 时,这并不意味着屏幕已关闭。

请参阅:When does android device go to sleep mode?

请参阅:http://developer.android.com/training/scheduling/wakelock.html

当设备的屏幕未开启时,它仍然会被唤醒以不时地进行操作。为了节省电池,它会睡觉,但应用程序将不可避免地将其唤醒以做事。

您可以查看屏幕是否已开启:How can I tell if the screen is on in android?