How to prevent the screen of an android device to turn off during the execution of an Activity?

Add android:keepScreenOn="true" to some widget in your layout XML resource for this activity. So long as that widget is visible on the screen, the screen will not turn off automatically.

EDIT:

A WakeLock, as suggested by other answers, technically will work. But then you have to manually release the WakeLock (if you mess that up, the screen will stay on a long time). And, since you could mess it up, you need the WAKE_LOCK permission. Using keepScreenOn avoids all of that.


To change it on-the-fly do this:

if (keepScreenOn)
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
else
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

Handling Fragments and Screen Rotation

The Android documentation, Keep the device awake outlines each solution.

Solution #1 - Flags

Documentation - Alternatives to using wake locks

For Fragments use the programmatic approach that is less battery intensive.

Enable

activity!!.window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

Disable

activity!!.window.clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON)

For my use case I called this in onStop() so the screen would default to the normal configuration when the Fragment showing the media content is exited.

Avoid

keepScreenOn=true does not work when there is a configuration change such as a screen rotation for Fragments.

Note: Android's Keep the device awake documentation should be updated accordingly to handle this case.

Solution #2 - Wake Lock

Documentation - Keep the CPU on with Wake Locks

A Wake Lock offers more control over keeping the specific elements of the device awake, but is more battery intensive, and important to release manually to save the battery since it is not handled automatically by the system.