• Uncategorized
  • 0

Broadcast Receivers pada Android

Beberapa peristiwa yang bisa terjadi dalam sistem Android mungkin berdampak pada fungsionalitas aplikasi yang dipasang pada perangkat. Misalnya, jika sistem sudah selesai booting, Anda mungkin ingin aplikasi cuaca memperbarui informasinya. Framework Android menanganinya dengan mengirimkan siaran sistem yang berisi Intent yang seharusnya diterima menggunakan BroadcastReceivers. BroadcastReceiver adalah kelas dasar untuk kode yang akan menerima Intent yang dikirimkan oleh sendBroadcast(). Ada dua kelas utama siaran yang dapat diterima:

  • Siaran normal (yang dikirimkan dengan Context.sendBroadcast()) sangat asinkron. Semua penerima siaran dijalankan dalam urutan yang tidak ditentukan, sering kali pada saat yang bersamaan. Ini lebih efisien, namun ini berarti penerima tidak dapat menggunakan hasil atau membatalkan API yang disertakan di sini.
  • Siaran pesanan (yang dikirim dengan Context.sendOrderedBroadcast) dikirim ke satu penerima pada satu waktu. Karena setiap penerima mengeksekusi secara bergantian, hal ini dapat menyebarkan hasil ke penerima selanjutnya, atau bisa membatalkan siaran agar tidak diteruskan ke penerima. Perintah yang dijalankan penerima dapat dikontrol dengan atribut android:priority dari filter intent yang cocok; penerima dengan prioritas yang sama akan dijalankan dalam urutan yang acak.

Pada postingan kali ini kita akan membuat aplikasi bernama PowerReceiver.

Aplikasi PowerReceiver akan mendaftarkan BroadcastReceiver yang menampilkan pesan Toast saat perangkat terhubung atau terputus dari aliran listrik. Aplikasi ini juga akan mengirimkan dan menerima Intent Broadcast khusus untuk menampilkan pesan Toast yang berbeda.

  1. Membuat proyek baru bernama PowerReceiver, menerima opsi default dan menggunakan template Empty.
  2. Membuat Penerima Siaran baru. Pilih nama paket dalam Tampilan Proyek Android dan buka File > New > Other > Broadcast Receiver.
  3. Beri nama kelasnya CustomReceiver dan pastikan “Exported” dan “Enabled” dicentang.

 

 

 

Dalam file AndroidManifest.xml, tambahkan kode berikut di antara tag <receiver> untuk mendaftarkan Penerima Anda untuk Intent sistem:

 

Pada method onRcive, tambahkan seperti berikut:

Override kedua method onStart() dan onStop() dan masukkan kode berikut:

 

Selain merespons siaran sistem, aplikasi juga dapat mengirimkan dan menerima Intent Siaran khusus. Intent siaran khusus sama persis dengan sistem, namun di sini Anda harus mendefinisikan tindakan Intent sendiri untuknya (string unik) dan tindakannya dikirimkan menggunakan metode sendBroadcast(). Pada tugas ini, Anda akan menambahkan tombol ke aktivitas yang mengirimkan Intent Siaran khusus, yang akan didaftarkan oleh penerima dan ditampilkan dalam pesan Toast.

 

Dalam file activity_main.xml, tambahkan tampilan Tombol dengan atribut berikut:

Berikut adalah XML nya

Karena siaran ini ditujukan untuk digunakan hanya oleh aplikasi Anda, gunakan LocalBroadcastManager untuk mengelola siaran dalam aplikasi. LocalBroadcastManager adalah kelas yang mengizinkan Anda untuk mendaftar dan mengirim siaran Intent ke objek lokal dalam aplikasi. Dengan menjaga siaran tetap lokal, data aplikasi tidak akan dibagikan dengan aplikasi Android lainnya, menjadikan informasi lebih aman dan memelihara efisiensi sistem.

Tambahkan beberapa kode berikut kedalam class MainActivity:

 

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *