Use el método de transmisión de registro dinámico para monitorear el fuera de pantalla y la pantalla brillante
1. Crea un receptor
class ScreenStatusReceiver extiende BroadcastReceiver { String SCREEN_ON = "android.intent.action.SCREEN_ON"; String SCREEN_OFF = "android.intent.action.SCREEN_OFF"; @Override public void onReceive(Context context, Intent intent) { if (SCREEN_ON.equals(intent.getAction())) { //屏幕亮做xxx操作 } else if (PANTALLA_APAGADA.equals(intent.getAction())) { //屏幕暗做xxx操作 } } }
2. Usar receptor
ScreenStatusReceiver privado mScreenStatusReceiver;
utilizado en onCreate
oonResume
privado void registSreenStatusReceiver() { mScreenStatusReceiver = new ScreenStatusReceiver(); IntentFilter screenStatusIF = new IntentFilter(); screenStatusIF.addAction(Intent.ACTION_SCREEN_ON); screenStatusIF.addAction(Intent.ACTION_SCREEN_OFF); registerReceiver(mScreenStatusReceiver, screenStatusIF); }
dejar de escuchar en onDestroy
oonPause
unregisterReceiver(mScreenStatusReceiver);
referencia:
Monitor Android fuera de pantalla, monitor Android fuera de pantalla y en pantalla
Aprender sobre el monitoreo de transmisión de Android dentro y fuera de la pantalla