Um das zu verhindern muss man  nur dem PowerManager sagen, dass er das verhindern soll. Dafür deklarieren wir als Erstes ein Objekt vom Typ WakeLock als Private Member.

Select Code
private WakeLock wakeLock;

In der Methode onCreate initialisieren wir das Ganze mittels des PowerManagers.

Select Code
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen");

Nun müssen wir noch dafür sorgen, dass unser WakeLock wenn die App nicht aktiv ist deaktiviert wird und wenn sie aktiviert wird wieder gesetzt wird. Dafür überschreiben wir onPause() und onResume() und aktivieren bzw. deaktivieren darin den Lock.

Select Code
@Override
protected void onPause() {
super.onPause();
wakeLock.release();
}

@Override
protected void onResume() {
super.onResume();
wakeLock.acquire();
}

Damit man das auch darf muss die App über die Permission WAKE_LOCK verfügen, welche wir einfach im Manifest eintragen.

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