Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>You cannot declare <code>ACTION_SCREEN_ON</code> and <code>ACTION_SCREEN_OFF</code> in the <em>AndroidManifest.xml</em>. You are only allowed to catch them while your activity is running.</p> <p>Here's an example.</p> <p>The <em>BroadcastReceiver</em>:</p> <pre><code>public class ScreenReceiver extends BroadcastReceiver { public static boolean wasScreenOn = true; @Override public void onReceive(final Context context, final Intent intent) { if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { // do whatever you need to do here wasScreenOn = false; } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { // and do whatever you need to do here wasScreenOn = true; } } } </code></pre> <p>The <em>Activity</em>:</p> <pre><code>public class ExampleActivity extends Activity { private BroadcastReceiver mReceiver = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // initialize receiver final IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); filter.addAction(Intent.ACTION_SCREEN_OFF); mReceiver = new ScreenReceiver(); registerReceiver(mReceiver, filter); // your code } @Override protected void onPause() { // when the screen is about to turn off if (ScreenReceiver.wasScreenOn) { // this is the case when onPause() is called by the system due to a screen state change Log.e("MYAPP", "SCREEN TURNED OFF"); } else { // this is when onPause() is called when the screen state has not changed } super.onPause(); } @Override protected void onResume() { super.onResume(); // only when screen turns on if (!ScreenReceiver.wasScreenOn) { // this is when onResume() is called due to a screen state change Log.e("MYAPP", "SCREEN TURNED ON"); } else { // this is when onResume() is called when the screen state has not changed } } @Override protected void onDestroy() { if (mReceiver != null) { unregisterReceiver(mReceiver); mReceiver = null; } super.onDestroy(); } } </code></pre> <p>You could probably solve your question by listening to these events from a <code>Service</code>.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload