Tiga dari empat tipe komponen (activity, service dan broadcast receiver) diaktifkan oleh sebuah pesan tidak sinkron yang disebut intent. Intent mengikat beberapa komponen-komponen indiviual menjadi satu pada saat runtime. Kita bisa menganggap intent sebagai pengirim pesan yang meminta sebuah aksi dari komponen lain, tidak peduli apakah komponen tersebut milik aplikasi kita ataupun aplikasi lain. Sebuah intent dibuat dengan objek Intent
, yang mana mendefinisikan sebuah pesan untuk mengaktifkan sebuah komponen khusus atau sebuah tipe komponen (sebuah intent bisa merupakan komponen implisit atau eksplisit).
Bagi broadcast receiver, intent hanyalah mendefinisikan pengumuman yang di-broadcast. Misalnya sebuah broadcast untuk mengindikasikan batery perangkat sudah lemah hanya terdiri dari sebuah action string yang bernilai "Battery lemah".
Komponen tipe lain, content provider, tidak diaktifkan oleh intent. Akan tetapi, content provider diaktifkan ketika menjadi target permintaan dari sebuah content resolver. Content resolver meng-handle semua transaksi langsung dengan content provider sehingga komponen yang ingin bertransaksi dengan content provider cukup memanggil method di objek content resolver. Dengan ini, kita membuat sebuah abstraksi antara content provider dan komponen yang meminta informasi (untuk keamanan).
Ada beberapa metode terpisah yang bisa digunakan untuk mengaktifkan setiap tipe komponen:
- Kita bisa memulai sebuah activity atau memberikannya sesuatu yang baru untuk dilakukan dengan mengirimkan sebuah
Intent
kestartActivity()
ataustartActivityForResult()
jika kita ingin activity agar mengembalikan sebuah hasil. - Kita bisa memulai service atau memberikan instruksi baru kepada service yang berjalan dengan memberikan
Intent
kestartService()
. Atau kita bisa terikat ke service dengan memberikanIntent
kebindService()
. - Kita juga bisa menginisiasi sebuah broadcast dengan memberikan sebuah
Intent
ke beberapa method sepertisendBroadcast()
,sendOrderedBroadcast()
, atausendStickyBroadcast()
. - Kita bisa melakukan query ke content provider dengan memanggil
query()
dalam sebuahContentresolver
.
Tweet
Tidak ada komentar:
Posting Komentar