PEMBUATAN APLIKASI ALARM MANAGER
Penggunaan Service di Alarm Manager Adakalanya kita membutuhkan perlu suatu mekanisme untuk mengulang sebuah proses di waktu tertentu. Misalnya, kita ingin memiliki fungsi pengingat (reminder) pada aplikasi event, jadwal tayang film di bioskop, atau aplikasi alarm untuk mengingatkan kita untuk bangun di pagi hari. Disinilah alarm manager berperan penting.
Alarm manager akan memberikan kemudahan bagi aplikasi untuk melakukan operasi berbasis waktu diluar daur hidup aplikasi itu sendiri. Contohnya seperti yang baru saja disebutkan diatas. Umumnya alarm memiliki beberapa karakteristik, antara lain :
1. Dapat menjalankan obyek intent berdasarkan waktu dan interval yang ditentukan.
2. Bisa bekerja dengan baik dengan broadcast receiver untuk menjalankan komponen lain seperti service untuk melakukan operasi tertentu.
3. Alarm berjalan diluar daur hidup aplikasi induknya sehingga kita bisa merancang fungsi alarm untuk melakukan sebuah aksi ketika aplikasi sedang tidak dijalankan bahkan ketika peranti dalam keadaan idle atau sleep.
4. Esensi utama dari alarm manager adalah untuk meminimalkan penggunaan resource dan menghindari penggunaan timer dan background service yang berkepanjangan untuk melakukan operasi atau aksi yang dibutuhkan.
Penggunaan dan perancangan alarm manager yang tepat akan membuat aplikasi kita menjadi lebih baik, serta tentunya memberikan pengalaman yang juga berkesan. Namun sebaliknya desain yang buruk akan menjadi bumerang bagi aplikasi kita. Akibat dari rancangan yang tidak sesuai akan menguras baterai di peranti kita.
Penggunaan alarm manager yang baik adalah dengan menerapkan cara berikut ini:
- Lakukan hanya untuk proses di lokal
- Jaga frekuensi alarm yang dijalankan dengan interval yang tidak pendek
- Jika tidak terlalu penting, hindari penggunaan tipe alarm yang dapat membangunkan peranti seperti RTC_WAKEUP
- Jika alarm manager digunakan untuk menjadwalkan scheduling task yang terhubung ke jaringan dan melakukan request ke server, misalnya unduh data terbaru atau sinkronisasi data, maka hindari penggunaan setRepeating() dan gunakan setInExactRepeating() dengan penggunaan tipe alarm berbasis ELAPSED_REALTIME. Pendekatan tersebut merupakan strategi untuk mengelompokkan proses alarm dari aplikasi yang berbeda dengan dijalankan secara bersamaan agar lebih menghemat daya baterai
Kali ini kita akan membuat sebuah proyek sederhana dengan skenario seperti berikut.
1. Aplikasi akan memiliki kemampuan untuk melakukan one-time-execution alarm dan alarm yang berulang berdasarkan waktu yang ditentukan.
2. Aplikasi akan menyimpan beberapa nilai untuk kedua tipe alarm tersebut.
3. Aplikasi akan menampilkan notifikasi dengan suara dan getar ketika alarm dijalankan.
mari kita mulai :
1. Buat proyek baru dengan nama MyAlarmManager yang berjenis Empty Activity dan dengan konfigurasi default tentunya.
2. Pada activity_main.xml sesuaikan kodenya menjadi seperti berikut.
Sehingga tampilan aplikasi dari activity_main.xml ketika dijalankan seperti berikut
3. Setelah itu kita akan membuat sebuah mekanisme penyimpanan sederhana dengan menggunakan SharedPreference. Untuk itu, mari kita membuat sebuah kelas java baru dengan nama AlarmPreference. Caranya, klik kanan pada package project yang ada saat ini → new → Java Class. Ketika sudah selesai, lengkapi kodenya menjadi seperti berikut.
4. Setelah itu, buat kelas BroadcastReceiver bernama AlarmReceiver dan lengkapi kodenya seperti berikut.
5. Setelah kita membuat sebuah AlarmReceiver dan menyesuaikan kode pada activity_main.xml, sekarang saatnya kita melengkapi MainActivity kodenya sehingga menjadi seperti ini :
6. Jangan lupa untuk menambahkan permission pada AndroidManifest.xml beberapa baris berikut.
1. <uses-permission android:name="android.permission.VIBRATE" />
2. <uses-permission android:name="android.permission.WAKE_LOCK" />
2. <uses-permission android:name="android.permission.WAKE_LOCK" />
Ketika mengimport komponen Calendar, pastikan Anda menggunakan java.util.calendar. Jangan sampai keliru dengan komponen calendar lainnya yang baru ditambahkan pada API 24.
7. Jika sudah selesai, silakan jalankan aplikasi Anda. Dengan menekan tombol yang ada pada sebelah TextView tanggal dan waktu, Anda dapat mengganti tanggal dan waktu yang diinginkan. Isikan juga pesan alarm yang diinginkan. Setelah tanggal, waktu dan pesan telah Anda isi, lanjutkan dengan klik tombol SET ONE TIME ALARM dan silakan tunggu sampai waktu yang ditentukan, sehingga alarm akan dijalankan. Jika sukses, maka waktu yang kita set di awal akan tampil pada obyek TextView yang telah disediakan.
Ketika waktunya sudah sesuai, maka alarm akan dijalankan dan akan menampilkan notifikasi dengan getaran dan suara seperti berikut.
Anda sudah bisa mengimplementasikan one-time-alarm untuk tanggal dan jam yang telah ditentukan. Fungsi ini bisa berguna untuk beragam fitur lain. Misalnya jika Anda membuat aplikasi tentang event, pasti fungsi ini akan sangat berguna sebagai mekanisme pengingat.
No comments:
Post a Comment