,
29 Jun

Wie du verhinderst, dass sich das Display ausstellt

In diesem Tutorial zeige ich dir, wie du verhindern kannst, dass sich das Display des Smartphones während der Laufzeit deiner App automatisch abstellt.

 

Wie du verhinderst, dass sich das Display ausstellt

 

 

Allgemeines vorab

Es gibt verschiedene Fälle, in denen ein Abschalten des Bildschirms nervig oder unerwünscht ist. Etwa, wenn du eine Stoppuhr nutzt und die Zeit immer im Blick haben willst. Ich stelle dir im Folgenden zwei Möglichkeiten vor, mit denen du das Display „wach“ halten kannst. Es handelt sich dabei um kleine Änderungen, die im Nachhinein an (d)einer fertigen App vorgenommen werden können. Deshalb gibt es keine großen Quelltext-Beispiele. (Falls du eine Beispiel-App zum modifizieren suchst, wirf einen Blick auf meine anderen Android-Tutorials. :-)) So oder so könnt ihr entweder den Bildschirm grundsätzlich wach halten oder, um Screen Burn beim Benutzer zu verhindern, das Wachhalten von einer Kondition abhängig machen. Das könnte ein ToggleButton sein, eine CheckBox oder wer-weiß-was.

 

1. Modifizieren eines Views: Keep_Screen_On

Die erste Möglichkeit ist das Wachhalten durch Modifizieren eines Views. Einem Element, z.B. dem Haupt-Layout, wird die Eigenschaft KeepScreenOn mit dem Wert „true“ hinzugefügt:

android:KeepScreenOn="true"

Das geht entweder direkt über die XML-Datei mit dem jeweiligen Layout oder, wenn das Wachhalten optional oder temporär sein soll, in einer der Java-Dateien. Zum Beispiel so:

LinearLayout layout = (LinearLayout) findViewById(R.id.linearlayout);
layout.setKeepScreenOn(true);

Um das Ganze rückgängig zu machen, wird statt true einfach false verwendet.

layout.setKeepScreenOn(false);

 

 

2. WindowManager: Flag setzen

Alternativ kannst du mit Flags (beziehungsweise einer Flag) arbeiten. Dazu musst du das aktuelle Window „anfordern“ und dem WindowManager die korrekten Layout-Parameter bzw. die zu setzende Flag mitteilen:

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

Auch diese Variante kann sowohl in der onCreate-Methode als auch nach einem Buttonclick o.ä. aufgerufen werden. Um die Flag wieder zu entfernen, wird getWindow().clearFlags(…) verwendet:

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

 

Ich hoffe, diese Anleitung hat dir geholfen. Hast du Anregungen oder Fragen? Hat es funktioniert oder nicht? Hinterlass‘ mir einen Kommentar!



🙂 Klick hier für Bücher zum Thema Android-Programmierung!* 🙂