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