Display eingeschaltet lassen

Bei bestimmten Apps muss der Bildschirm eingeschaltet bleiben, z. B. bei Spiele- oder Film-Apps. Einige Android APIs halten das Display automatisch für Sie eingeschaltet. In anderen Fällen können Sie ein Flag setzen, um den Bildschirm manuell eingeschaltet zu lassen.

Display manuell eingeschaltet lassen

Wenn das Display des Geräts eingeschaltet bleiben soll, setzen Sie in Ihrer Aktivität das Flag FLAG_KEEP_SCREEN_ON. Dieses Flag darf nur in einer Aktivität, niemals in einem Dienst oder einer anderen App-Komponente festgelegt werden. Beispiel:

Kotlin

class MainActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
    }
}

Java

public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  }
}

Sie können den Bildschirm auch eingeschaltet lassen, indem Sie das Attribut android:keepScreenOn in der Layout-XML-Datei Ihrer Anwendung festlegen:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true">
    ...
</RelativeLayout>

Die Verwendung von android:keepScreenOn="true" entspricht der Verwendung von FLAG_KEEP_SCREEN_ON. Sie können den Ansatz verwenden, der für Ihre App am besten geeignet ist. Der Vorteil der programmatischen Einstellung des Flags in Ihrer Aktivität besteht darin, dass Sie das Flag später programmatisch löschen und so den Bildschirm ausschalten können.

Wenn eine App mit dem Flag FLAG_KEEP_SCREEN_ON in den Hintergrund wechselt, erlaubt das System, dass das Display normal ausgeschaltet wird. In diesem Fall müssen Sie das Flag nicht explizit löschen. Wenn Ihre App den Bildschirm nicht mehr eingeschaltet lassen muss, sollten Sie das Flag löschen, indem Sie clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) aufrufen.

Inaktivmodus für Fernseher

Auf Fernsehern können Sie die Taste FLAG_KEEP_SCREEN_ON verwenden, um zu verhindern, dass das Gerät während der aktiven Videowiedergabe in den Inaktivmodus wechselt. Wenn FLAG_KEEP_SCREEN_ON nicht durch die Aktivität im Vordergrund festgelegt wird, wechselt das Gerät nach einer gewissen Zeit der Inaktivität automatisch in den Inaktivmodus.

Siehe auch