我正在开发一个需要经常运行小块代码的应用程序(例如,每两秒一次)。我尝试使用简单的 Thread.sleep() (或 android.os.SystemClock.sleep() 以避免中断,最后我尝试使用 Timer 和 Handler)使其工作,但结果是时间程序睡眠是随机的(或者,如果我使用 Timer 或 Handler,它根本不会运行,因为系统会在屏幕关闭时丢弃它们的消息),因为系统在屏幕关闭期间进入深度睡眠模式。
例如,如果我将手机插入充电器,或者正在播放音乐(避免深度睡眠模式),代码就可以正常工作,但是当手机不做任何事情时,时间可能会从两秒睡眠增加到几分钟睡觉。
从https://groups.google.com/forum/#!topic/android-developers/Eqwp8Uiy2f0看来,唯一的选择是使用 AlarmManager 强制唤醒,但这种方式可能会导致过多的电池消耗。
有没有其他选择?
如果没有,有什么方法可以检测系统何时进入深度睡眠模式?