Niektóre aplikacje, takie jak gry czy aplikacje do filmów, wymagają włączonego ekranu. Niektóre interfejsy API Androida automatycznie utrzymują ekran włączony. W innych przypadkach możesz ręcznie ustawić flagę, aby ekran pozostawał włączony.
Ręczne pozostawianie ekranu włączonego
Aby utrzymać ekran urządzenia włączony, ustaw w swojej aktywności flagę FLAG_KEEP_SCREEN_ON
. Flagę można ustawić tylko w działaniu, a nie w usłudze czy innym komponencie aplikacji. Na przykład:
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); } }
Innym sposobem na utrzymanie ekranu w stanie włączonym jest ustawienie atrybutu android:keepScreenOn
w pliku XML układu aplikacji:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:keepScreenOn="true"> ... </RelativeLayout>
Użycie android:keepScreenOn="true"
jest równoznaczne z użyciem FLAG_KEEP_SCREEN_ON
.
Możesz użyć dowolnego podejścia, które najlepiej pasuje do Twojej aplikacji. Zaletą ustawiania flagi w ramach aktywności jest to, że możesz ją później wyczyścić programowo, a tym samym wyłączyć ekran.
Jeśli aplikacja z flagą FLAG_KEEP_SCREEN_ON
przechodzi do działania w tle, system pozwala na normalne wyłączenie ekranu. W tym przypadku nie musisz wyraźnie usuwać flagi. Jeśli aplikacja nie musi już mieć włączonego ekranu, usuń flagę, wywołując metodę clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
.
Tryb nieaktywny na telewizorze
Na urządzeniach telewizyjnych użyj FLAG_KEEP_SCREEN_ON
, aby urządzenie nie przechodziło w tryb nieaktywny podczas aktywnego odtwarzania filmu. Jeśli w aktywności na pierwszym planie nie ustawiono ustawienia FLAG_KEEP_SCREEN_ON
, urządzenie automatycznie przełącza się w tryb nieaktywny po okresie braku aktywności.