如何检查onStop()中的屏幕开/关状态?

如此处所述,当屏幕熄灭时,将onStop()当前Activity的onStop() 。 当我的ActivityonStop()被调用时,我需要检查屏幕的开/关状态。 所以我已经为这些动作( ACTION_SCREEN_ONACTION_SCREEN_OFF )注册了一个BroadcastReceiver来logging当前的开/关状态(并且它们正常工作,我已经logging了!)。
但是当我closures屏幕并检查onStop的开/关状态时,表示屏幕已开启。 为什么? 我认为接收器必须在onStop被调用之前收到ACTION_SCREEN_OFF ,那么怎么回事?

Solutions Collecting From Web of "如何检查onStop()中的屏幕开/关状态?"

您可以尝试使用PowerManager系统服务,以下是示例和官方文档 (请注意,此方法已添加到API级别7中):

 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); boolean isScreenOn = pm.isScreenOn(); 

编辑:

isScreenOn()方法已被弃用API级别21.您应该使用isInteractive来代替:

 boolean isScreenOn = pm.isInteractive(); 

http://developer.android.com/reference/android/os/PowerManager.html#isInteractive()