Как проверить статус включения / выключения экрана в onStop ()?

Как упоминалось здесь , когда экран отключается, будет onStop() текущей Activity. Мне нужно проверить статус включения / выключения экрана, когда onStop() моей Activity . Поэтому я зарегистрировал BroadcastReceiver для этих действий ( ACTION_SCREEN_ON и ACTION_SCREEN_OFF ), чтобы записать текущий статус включения / выключения (и они работают правильно, я зарегистрировался!).
Но когда я выключаю экран и проверяю состояние включения / выключения в onStop , он говорит, что экран onStop . Зачем? Я думаю, что приемник должен получить ACTION_SCREEN_OFF прежде чем 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 ()