Menjaga layar agar tetap aktif

Aplikasi tertentu harus menjaga layar agar tetap aktif, seperti aplikasi film atau game. Beberapa API Android akan otomatis membuat layar tetap menyala untuk Anda. Dalam kasus lain, Anda dapat menetapkan flag untuk membuat layar tetap menyala secara manual.

Membuat layar tetap menyala secara manual

Agar layar perangkat tetap aktif, setel flag FLAG_KEEP_SCREEN_ON dalam aktivitas Anda. Flag ini hanya boleh ditetapkan dalam aktivitas, tidak boleh dalam layanan atau komponen aplikasi lainnya. Contoh:

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);
  }
}

Cara lain untuk membuat layar tetap menyala adalah dengan menetapkan atribut android:keepScreenOn dalam file XML tata letak aplikasi Anda:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true">
    ...
</RelativeLayout>

Menggunakan android:keepScreenOn="true" sama dengan menggunakan FLAG_KEEP_SCREEN_ON. Anda dapat menggunakan pendekatan mana pun yang terbaik untuk aplikasi Anda. Keuntungan menetapkan flag secara terprogram dalam aktivitas adalah Anda memiliki opsi untuk menghapus flag secara terprogram nanti, sehingga memungkinkan layar untuk dinonaktifkan.

Jika aplikasi dengan tanda FLAG_KEEP_SCREEN_ON beralih ke latar belakang, sistem akan mengizinkan layar dinonaktifkan secara normal. Dalam hal ini, Anda tidak perlu menghapus flag secara eksplisit. Jika aplikasi tidak perlu lagi membuat layar tetap aktif, Anda harus menghapus tanda. dengan memanggil clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON).

Mode Standby untuk TV

Pada perangkat TV, gunakan FLAG_KEEP_SCREEN_ON untuk mencegah perangkat beralih ke Mode Standby selama pemutaran video aktif. Jika aktivitas latar depan tidak menetapkan FLAG_KEEP_SCREEN_ON, perangkat akan otomatis memasuki Mode Standby setelah periode tidak aktif.

Lihat juga