Android Dasar

Pertemuan #6: Mengirim dan Menerima Implicit Intents

Pada pertemuan perkuliahan sebelumnya dibahas bagaimana cara mengaktifkan beberapa komponen dasar Android dengan menggunakan Intent, atau lebih tepatnya Explicit Intent. Pada pertemuan kali ini, dibahas lebih jauh mengenai Implicit intents.

Implicit Intents merupakan bentuk lain dari Intent, dimana untuk menggunakannya kita tidak perlu menspesifikasikan target komponen yang akan menghandel informasi yang dibawa Intent tersebut. Kita cukup menambahkan Action yang akan dilakukan oleh komponen target penerima sebagai argumen ketika membuat objek Intent. Selain itu, kita juga dapat menambahkan informasi lain selain Action, yaitu Data dan Categories.

Mengirim Implicit Intents

Mekanisme pembuatan objek implicit intent mirip dengan explicit intent, yaitu sebagai berikut:

  1. Buat objek Intent dalam Activity pengirim,
  2. Tambahkan informasi ke dalam objek Intent pada poin 1 mengenai permintaan task yang akan dilakukan, seperti: data atau ekstra
  3. Kirim atau aktifkan Intent menggunkan startActivity() atau startActivityForResult() (jika ingin memulai Activity dan mengharapkan hasil balik)

Ketika Anda membuat objek Intent dalam Activity pengirim, berikut beberapa hal yang perlu diperhatikan:

  • Jangan menspesifikasikan Activity atau komponen lain sebagai target yang akan menerima intent
  • Tambahkan Action dari Intent tersebut atau Category (atau keduanya)
  • Sebelum memanggil metode startActivity() atau startActivityForResult(), lakukan pengecekan ke sistem terlebih dahulu, apakah ada komponen yang akan dapat menghandel permintaan Implicit intent yang dibuat (Resolve Intent)
  • Tampilkan panel App Chooser untuk permintaan Intent (opsional)

Selanjutnya ketika sebuah Activity atau komponen lain mengirim sebuah Implicit Intent, berikut adalah yang akan terjadi pada sistem Android:

  1. Android Runtime menyimpan daftar aplikasi yang teregistrasi (sebelum eksekusi),
  2. Aplikasi harus mendaftar melalui AndroidManifest.xml (sebelum eksekusi),
  3. Runtime menerima permintaan dan cari komponen yang cocok untuk menghandel task,
  4. Android runtime menggunakan Intent filters untuk mencocokan,
  5. Jika lebih dari 1 komponen yang cocok, munculkan daftar aplikasi dalam panel App Chooser,
  6. Pengguna memilih aplikasi,
  7. Android runtime memulai activity yang diminta.

Menerima Implicit Intents

Selain mengirim Implicit Intent, sebuah Activity juga dapat menerima Implicit Intent. Artinya jika terdapat permintaan untuk melakukan task tertentu dari Android, Activity tersebut dapat menghandelnya.

Untuk dapat menerima Implicit Intent, Anda perlu menambahkan tag elemen intent-filter pada element Activity yang Anda daftarkan di AndroidManifest. Sebuah Activity dapat memiliki 0 atau lebih intent-filter. Didalamnya Anda dapat menambahkan action, categories, dan data untuk mencocokan terhadap permintaan Implicit Intent yang diterima. Elemen-elemen tersebut dapat lebih dari 1.

 

Comments

Related posts