Keep the screen awake throughout my activity Keep the screen awake throughout my activity android android

Keep the screen awake throughout my activity


As discussed in the Android tutorial Keep the Screen On, you can do this in a few ways. You can set the FLAG_KEEP_SCREEN_ON on the activity's window:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

An XML equivalent for that is to add the attribute android:keepScreenOn="true" to the root view of your activity's layout. The advantage of setting the flag programmatically is that you can use

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

when you no longer need to force the screen to stay on while your activity is running.

Another way to control the screen (and certain other resources) is to use a wake lock:

mWakeLock = ((PowerManager) getContext().getSystemService(Context.POWER_SERVICE))    .newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass().getName());mWakeLock.acquire();// screen stays on in this sectionmWakeLock.release();

The manifest will have to include this permission:

<uses-permission android:name="android.permission.WAKE_LOCK"/>

However, as discussed in the tutorial, a wake lock is more appropriate for other use cases (such as a service or background task needing the CPU to keep running while the screen is off).


I find this solution much easier:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" // Whatever your layout is    ...    android:keepScreenOn="true"> // Add this line

Just add this to your activity layout XML.


As per I understand your question, I think you have to use WAKE_LOCK for it in your application.

Something like,

final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,"");    mWakeLock.acquire();

And in your application's manifest.xml file file add this,

<uses-permission android:name="android.permission.WAKE_LOCK" />