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.