Display eingeschaltet lassen

Bei bestimmten Apps muss das Display 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 für Ihre App am besten geeigneten Ansatz verwenden. Der Vorteil, das Flag in Ihrer Aktivität programmatisch festzulegen, besteht darin, dass Sie das Flag später programmatisch löschen können, sodass sich der Bildschirm abschalten lässt.

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 für die Vordergrundaktivität FLAG_KEEP_SCREEN_ON nicht festgelegt wird, wechselt das Gerät nach einer bestimmten Zeit der Inaktivität automatisch in den Inaktivmodus.

Siehe auch