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.