Nie wyłączaj ekranu

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.

Zobacz również