如此 处 所述,当屏幕关闭时,将调用当前活动的 onStop()
。当调用我的 Activity
的 onStop()
时,我需要检查屏幕开/关状态。所以我已经为这些操作注册了 BroadcastReceiver
( ACTION_SCREEN_ON
和 ACTION_SCREEN_OFF
)以记录当前的开/关状态(并且它们正常工作! ).
但是当我关闭屏幕并检查 onStop
中的开/关状态时,它表示屏幕已打开。为什么?我认为接收者必须在调用 ACTION_SCREEN_OFF
之前收到 onStop
是怎么回事?
原文由 Soheil 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以为此尝试使用 PowerManager 系统服务,这里是示例和 官方文档(注意此方法是在 API 级别 7 中添加的):
编辑:
isScreenOn() 方法已弃用 API 级别 21。您应该改用 isInteractive:
http://developer.android.com/reference/android/os/PowerManager.html#isInteractive()