【发布时间】:2011-11-19 20:15:45
【问题描述】:
我有一个长期运行的服务来监听传感器输入。为了节省电池电量,我在 ACTION_SCREEN_OFF 上停止了传感器的采样,并在 ACTION_SCREEN_ON 上再次启动它。
不过,我通常只是打开手机以快速浏览锁定屏幕上的时钟(以检查当前时间),然后再次关闭手机而不解锁手机。在这种情况下,没有理由启动传感器只是为了立即关闭然后再次关闭。
因此,我尝试在我的广播监听器中将 ACTION_SCREEN_ON 替换为 ACTION_USER_PRESENT。除了一种特殊情况外,这很好用:当屏幕关闭并且我立即按下电源按钮(或主页按钮)时,将跳过锁定屏幕。然后永远不会收到 ACTION_USER_PRESENT,只有 ACTION_SCREEN_ON。
有没有办法让我的广播接收器在收到 ACTION_SCREEN_ON 后知道屏幕锁定是否处于活动状态并期待稍后出现 ACTION_USER_PRESENT?或者如果锁屏被跳过,不等待 ACTION_USER_PRESENT 并立即重新开始采样?
【问题讨论】: