Mungkin untuk para developer Android, pasti akan menemukan situasi dimana aplikasi yang dibuat tidak dapat berjalan ketika Android dalam situasi idle untuk waktu yang lama. Dalam rentang waktu tertentu, Android akan masuk ke mode Key Lock / Sleep yang ditandai dengan layar Android mati dan pengguna diharuskan untuk melepaskan key lock agar dapat menggunakan handphonenya kembali.
Nah, untuk aplikasi-aplikasi yang diharuskan untuk berjalan terus-menerus, seperti internet messenger, media player, atau lainnya, hal ini tentu akan sangat mengganggu. Karena ketika Android dalam mode key lock / sleep, CPU akan dinonaktifkan, sehingga program-program yang sedang berjalan otomatis akan terhenti sampai mode key lock / sleep dirubah kembali ke mode aktif. Gak lucu kan kalo misalnya apliksi yang dibuat sedang memainkan musik tiba-tiba terhenti atau tiba-tiba koneksi internet messenger terputus.
Untuk mengakalinya, salah satu caranya adalah dengan mengubah konfigurasi PowerManager di Android. Cek penjelasan official dari Google mengenai ini dengan mengklik link ini. Kita bisa mengeset flag yang digunakan untuk mengkonfigurasikan PowerManager sesuai dengan kebutuhan, berikut adalah daftar flag tersebut:
Flag | CPU | Screen | Keyboard |
PARTIAL_WAKE_LOCK | On* | Off | Off |
SCREEN_DIM_WAKE_LOCK | On | Dim | Off |
SCREEN_BRIGHT_WAKE_LOCK | On | Bright | Off |
FULL_WAKE_LOCK | On | Bright | Bright |
Perlu diperhatikan bahwa penggunaan flag-flag tersebut harus hati-hati. Contohnya untuk flag FULL_WAKE_LOCK, jika diaktifkan maka Android tidak akan terus menerus berada di mode aktif, yaitu layar tidak akan redup / mati dan CPU terus berjalan hal ini tentu akan berakibat pada besarnya penggunaan resource baterai handphone. Menurut saya untuk kasus misalnya media player atau internet messenger, PARTIAL_KEY_LOCK adalah yang paling cocok untuk digunakan karena CPU tetap aktif sehingga aplikasi tetap bisa dijalankan namun layar dan keyboard tidak dapat digunakan.
Untuk menggunakan flag tersebut juga tidaklah rumit, cukup dengan beberapa baris kode sederhana di bawah ini:
[sourcecode language=”java”]
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, “My Tag”);
wl.acquire();
..layar akan tetap menyalan dalam seksi ini..
wl.release();
[/sourcecode]
Semoga artikel ini bisa membantu para developer Android yang dipusingkan dengan aplikasi yang tiba-tiba stop ketika Android dalam mode Key Lock / Sleep seperti saya hehe…
Cisco mengungkapkan tiga kerentanan dalam layanannya. Ini dia penanganannya!
Ini ulasan mengenai keuntungan OptimalCloud Partner Platform, platform baru milik Optimal idM!
Google kenalkan dua koleksi baru dari Coral. Dua koleksi baru ini bakal menambah kemampuan pengembangan…
Raksasa Google baru saja mengembangkan sistem pemindaian kanker payudara berbasis kecerdasan buatan. Bagaimana hasilnya, berikut…
Meski dikenalkan bersamaan dengan Android 10 Beta, sampai kini Bubbles Notifications masih dalam tahap pengembangan.…
Samsung akan kembali memamerkan hasil program C-Lab ke ajang CES 2020. Ini dia proyek dan…