用 ACTION USER_PRESENT 替换 ACTION_SCREEN_ON?
Posted
技术标签:
【中文标题】用 ACTION USER_PRESENT 替换 ACTION_SCREEN_ON?【英文标题】:Replacing ACTION_SCREEN_ON withy ACTION_USER_PRESENT? 【发布时间】: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 并立即重新开始采样?
【问题讨论】:
【参考方案1】:直到 android 4.4,如果屏幕打开并且锁屏被禁用,只有 ACTION_SCREEN_ON 被触发。从 Android 5.0 开始,在这种情况下,ACTION_SCREEN_ON 和 ACTION_USER_PRESENT 都会被触发。
【讨论】:
有ACTION_USER_PRESENT
的行为变化参考吗?以上是关于用 ACTION USER_PRESENT 替换 ACTION_SCREEN_ON?的主要内容,如果未能解决你的问题,请参考以下文章
用 WordPress (wpml) 中的简码替换元素或选择器