![]() |
Membuat, Menjalankan, dan mengatur siklus activity |
Ciao,
OpODab.com – Hai teman-teman opodab semua, masih melanjutakan
artikel sebelumnya mengenai artikel sebelum yang memberikan penjelasan tentang
activity pada sebuah aplikasi android, kali ini opodab ingin memeberikan
informasi bagaimana cara membuat, menjalankan dan mengatur siklus sebuah activity.
Membuat Activity
Untuk membuat sebuah activity,
kita harus membuat sebuah subclass
dari activity (atau subclass yang sudah ada). Dalam subclass yang dibuat, kita harus
mengimplementasikan metode pemanggilan kembali yang akan dipanggil sistem pada
saat transisi antar state (keadaan) yang bervariasi dari siklus hidupnya,
misalnya ketika activiti sedang dibuat, dihentikan, dikembalikan, atau
dihancurkan.
Metode pemanggilan kembali yang
paling penting ada dua, yaitu:
onCreate()
Kita harus mengimplementasikan
metode ini. Sistem akan memanggil metode ini ketika membuat activity. Dalam implementasi kita, kita
harus menginisialisasikan komponen-komponen penting dari activity kita. Yang paling penting, di sinilah kita harus memanggil
metode setContentView() untuk
mendefinisikan layout dari user interface activity.
Baca Juga : Pengenalan
Android Activity
onPause()
Sistem akan memanggil metode ini
sebagai indikasi pertama bahwa user sedang meninggalkan activity kita (meskipun tidak selalu activity tersebut akan dihancurkan). Di sinilah biasanya kita harus
melakukan perubahan yang mesti bertahan diluar sesi user yang sekarang. (karena
user mungkin tidak akan kembali). terdapat beberapa siklus metode pemanggilan
kembali yang harus kita gunakan untuk menyediakan pengalaman user interface yang halus dan lancar
antar activity dan menangani
interupsi yang tidak diinginkan yang dapat menghentikan activity atau bahkan dapat menghancurkan activity.
Menjalankan Activity
Kita bisa menjalankan activity dengan memanggil method startActivity(), memberikan activity tersebut sebuah Intent yang menggambarkan activity yang ingin kita jalankan. Intent akan memberitahukan nama activity atau bisa juga tipe aksi
seperti apa yang ingin dijalankan, dan kemudian sistem akan memilih activity yang sesuai untuk keingin kita,
bisa saja activity tersebut berasal
dari aplikasi lain. Intent bisa juga membawa sejumlah kecil data yang akan
digunakan oleh activity yang
dijalankan.
Ketika kita bekerja dalam
aplikasi kita sendiri, kita lebih sering menjalankan activity yang sudah diketahui. Kita juga bisa melakukan hal ini
dengan cara membuat intent yang secara eksplisit menggambarkan activity yang ingin dijalankan,
menggunakan nama class. Contoh di bawah ini, bagaimana sebuah activity
menjalankan activity lain yang
bernama NamaClass.
Intent intent = new Intent(this, NamaClass.class); startActivity(intent);
Namun bagaimanapun, aplikasi kita
mungkin ingin melakukan beberapa pekerjaan, misalnya mengirimkan email,
mengirimkan sms, atau update status, menggunakan data dari activity kita. Dalam hal ini , aplikasi kita mungkin tidak memiliki
activity sendiri untuk melakukan
pekerjaan tersebut, sehingga kita perlu menggunakan activity milik aplikasi lain dalam perangkat kita, yang bisa
melakukan pekerjaan yang kita diinginkan.
Di sinilah intent sangat bermanfaat,
kita bisa membuat intent yang menggambarkan pekerjaan seperti apa yang ingin
kita lakukan, dan sistem kemudian akan menjalankan activity yang sesuai dari aplikasi lain. Jika ada beberapa activity yang bisa menangani intent
tersebut, maka user akan diminta memilih activity
mana yang akan digunakan. Sebagai contoh, jika kita ingin agar user bisa
mengirim sebuah email, kita bisa membuat intent
seperti berikut ini.
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, recipientArray); startActivity(intent);
Tambahan ekstra berupa EXTRA_EMAIL yang ditambahkan ke intent
adalah sebuah string array dari alamat email tujuan pengiriman email tersebut.
Ketika sebuah aplikasi email merespon terhadap intent ini, aplikasi email
tersebut akan membaca string array yang diberikan oleh ekstra dan
menempatkannya di pengisian "kepada" dari komposisi form email. Dalam
situasi ini, activity dari aplikasi
email dijalankan, dan ketika user selesai, akan kembali ke activity dari aplikasi kita.
Mengatur Siklus Hidup Activity
Mengatur siklus hidup activity
dengan menerapkan callback method (
metode pemanggilan kembali) sangatlah krusial dalam pengembangan aplikasi yang
kuat dan fleksibel. Siklus hidup dari sebuah activity terpengaruh secara langsung oleh hubungan activity tersebut dengan activity lain, tugasnya (task), dan tumpukan pada memori (back stack).
Sebuah activity bisa exist dalam
tiga keadan pokok, yaitu:
Resumed (Dijalankan)
Activity sedang berada pada
bagian terdepan (foreground) layar,
dan mendapatkan fokus dari user. Keadaan ini terkadang juga dianggap "running" atau sedang berjalan.
Paused (Didiamkan)
Activity lain sedang berada di foreground dan activity tersebut mendapatkan fokus, tapi activity yang ini masih bisa dilihat. Dalam hal ini, activity lain sedang terlihat dan berada
di atas activity yang ini dan activity
tersebut memiliki layout transparan
atau tidak menutupi seluruh layar. Activity
yang di-paused masih hidup seutuhnya
(object dari acitivity tetap tinggal di memori, tetap menjaga semua keadaan dan
informasi yang dimiliki, dan tetap tersambung dengan window manager), tapi bisa di-kill
oleh sistem pada situasi ketika memori yang tersedia sangat kurang.
Stopped (Dihentikan)
Activity ini sedang dihalangi sepenuhnya oleh activity lain (activity
sekarang berada di background). Activity yang di-stop juga masih hidup, object
activity masih tersimpan di memori, masih menjaga keadaan dan semua
informasi, tapi tidak tersambung dengan window
manager. bagaimanapun juga, activity
ini tidak lagi terlihat oleh user dan
bisa di-kill oleh sistem
sewaktu-waktu jika memori dibutuhkan untuk proses lain.
Jika sebuah activity di-stop atau di-pause, sistem menghapusnya dari memori
dengan memintanya untuk berhenti (dengan memanggil method finish()), atau
cukup mematikan prosesnya. Ketika activity
ingin dimulai lagi (setelah dihentikan atau dimatikan), maka activity tersebut harus di-create dari awal lagi.
Ciao,
OpODab,