28 Januari 2012

Dasar Aplikasi Android: Aktivasi Komponen

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).

Untuk activity dan service, sebuah intent mendefinisikan aksi apa yang harus dilakukan oleh keduanya, misalnya untuk melihat atau mengirim sesuatu. Selain itu, intent bisa juga memberikan URI dari data yang akan diolah selain hal-hal lain yang perlu diketahui oleh komponen yang dijalankan. Contohnya, sebuah intent bisa menyampaikan permintaan kepada sebuah activity untuk membuka gambar atau membuka sebuah web page. Dalam beberapa kasus, kita bisa menjalankan sebuah activity untuk menerima hasil, yang mana activity tersebut juga mengembalikan hasil dalam sebuah intent. Sebagai contoh, kita bisa membuat intent agar user memilih kontak dan mengembalikannya ke kita, di dalam intent yang dikembalikan termasuk sebuah URI menunjuk ke kontak yang dipilih.

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 ke startActivity() atau startActivityForResult() jika kita ingin activity agar mengembalikan sebuah hasil.
  • Kita bisa memulai service atau memberikan instruksi baru kepada service yang berjalan dengan memberikan Intent ke startService(). Atau kita bisa terikat ke service dengan memberikan Intent ke bindService().
  • Kita juga bisa menginisiasi sebuah broadcast dengan memberikan sebuah Intent ke beberapa method seperti sendBroadcast(), sendOrderedBroadcast(), atau sendStickyBroadcast().
  • Kita bisa melakukan query ke content provider dengan memanggil query() dalam sebuah Contentresolver.


Tidak ada komentar:

Posting Komentar