Pertemuan #5: Activity Lifecycle & Instance State
Activity Lifecycle
Android menyediakan empat komponen dasar untuk membuat aplikasi Android. Setiap komponen memiliki siklus hidupnya (lifecycle) masing-masing. Begitupun dengan komponen Activity. Siklus hidup Activity dapat diartikan sebagai kumpulan state (keadaan) di mana sebuah Activity berada selama waktu hidupnya, dari mulai Activity tersebut dibuat atau dipanggil sampai dihancurkan oleh sistem Android. Jika diartikan secara formal, Activity Livecycle merupakan sebuah graph terarah dari semua state dimana sebuah Activity berada, dan callback yang terkait dengan transisi dari masing-masing state ke state selanjutnya.
Terdapat enam state dalam sebuah Activity, yaitu: Created (belum terlihat), Started (terlihat, tapi belum dapat berinteraksi dengan pengguna), Resumed (terlihat), Paused (tidak terlihat sebagian), Stopped (tersembunyi), dan Destroyed (hilang dari memori). Perubahan dari satu state ke state lainnya dapat terjadi karena dipicu oleh tindakan pengguna, perubahan konfigurasi (misal: rotasi gawai), atau tindakan lain yang dilakukan oleh sistem Android dengan memanggil metode-metode pemanggilan balik (callbacks).
Berikut adalah metode-metode callback yang dipanggil ketika terjadi transisi dari sebuah Activity ke Activity lainnya, yaitu: onCreate(Bundle savedInstanceState), onStart(), onRestart(), onResume(), onPause(), onStop(), dan onDestroy(). Dari semua callback tersebut, hanya onCreate yang harus ditimpa (override) ketika membuah kelas Activity. Sedangkan callback lainnya bersifat opsional. Biasanya ditambahkan jika ingin mengubah perilaku baku yang terjadi pada state tertentu dari sebuah Activity dengan cara menimpanya (override) di berkas Activity tersebut.
Activity Instance State
Pada saat sebuah Activity dijalankan, informasi state akan dibuat yang isinya dapat bervariasi. Sebagai contoh, sebuah aplikasi counter akan membuat informasi mengenai jumlah hitungan yang ditambahkan pengguna. Contoh lainnya dapat berupa string teks yang diisikan pengguna pada komponen View EditText pada sebuah Activity. Atau keadaan tata letak View atau ViewGroup tertentu dalam sebuah Activity. Semua informasi ini yang disebut sebagai Instance State. Sayangnya informasi tersebut akan hilang jika terjadi perubahan konfigurasi pada Android seiring dihancurkannya Activity yang aktif pada saat itu. Perubahan konfigurasi ini dapat berupa merotasi gawai, pemilihan bahasa, atau menggunakan multi-windows. Oleh karena itu, seorang pengembang Android perlu memikirkan bagaimana menyimpan informasi tersebut agar tetap ada walaupun terjadi perubahan konfigurasi.
Comments