Panduan Lengkap Memahami Lifecycle Activity di Android
Lifecycle (siklus hidup) pada aplikasi Android merupakan salah satu aspek penting yang harus dipahami oleh setiap developer Android. Ketika kita berbicara tentang “lifecycle,” kita mengacu pada serangkaian tahap yang dilalui oleh Activity
selama waktu hidupnya, dari saat dibuat hingga saat dihancurkan. Dalam artikel ini, kita akan membahas lifecycle di Android secara lengkap, tahap demi tahap, dan bagaimana mengimplementasikan fungsionalitas di setiap tahap tersebut.
Apa Itu Activity di Android?
Activity
adalah salah satu komponen dasar dari aplikasi Android yang merepresentasikan satu layar dalam aplikasi. Setiap kali Anda membuka atau berpindah antar layar, Android menjalankan Activity
baru atau menghentikan yang lama. Memahami bagaimana sebuah Activity
dikelola oleh sistem melalui lifecycle-nya akan membantu Anda membangun aplikasi yang lebih efisien dan dapat diandalkan.
Tahapan Lifecycle Activity di Android
Lifecycle Activity
terdiri dari beberapa metode callback yang digunakan untuk menangani transisi antara berbagai kondisi (states) selama hidupnya. Berikut adalah tahapan-tahapan utama lifecycle Activity
:
- onCreate()
- onStart()
- onResume()
- onPause()
- onStop()
- onRestart()
- onDestroy()
1. onCreate()
Metode onCreate()
adalah tahap pertama yang dipanggil ketika Activity
pertama kali dibuat. Ini adalah tempat untuk menginisialisasi elemen UI dan variabel yang diperlukan untuk Activity
. Biasanya, layout file XML dihubungkan ke activity di sini menggunakan setContentView()
.
Implementasi:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Inisialisasi komponen UI dan variabel di sini
}
Kegunaan: Cocok untuk inisialisasi variabel, mengatur tampilan awal, atau membuat koneksi ke sumber data.
2. onStart()
Setelah onCreate()
, metode onStart()
dipanggil. Pada tahap ini, Activity
menjadi visible (terlihat) oleh pengguna, tetapi pengguna belum dapat berinteraksi langsung. Di sini, Activity
mulai mempersiapkan diri untuk berinteraksi.
Implementasi:
@Override
protected void onStart() {
super.onStart();
// Aktivitas yang perlu dijalankan saat Activity menjadi terlihat
}
Kegunaan: Digunakan untuk memulai animasi atau pengaturan UI lainnya yang terkait dengan penampilan.
3. onResume()
Setelah onStart()
, Activity
memasuki fase onResume()
, di mana Activity
sudah siap untuk berinteraksi dengan pengguna. Aplikasi sudah berjalan di latar depan (foreground), dan pengguna dapat mengklik tombol atau memasukkan input data.
Implementasi:
@Override
protected void onResume() {
super.onResume();
// Lanjutkan aktivitas yang dihentikan sementara, seperti pemutaran video atau game
}
Kegunaan: Lanjutkan animasi, koneksi ke sensor, atau aktivitas yang berhenti di
onPause()
.
4. onPause()
Metode onPause()
dipanggil ketika Activity
sedang beralih ke background, misalnya saat pengguna berpindah ke aplikasi lain. Pada tahap ini, aplikasi masih terlihat sebagian, tetapi tidak aktif berinteraksi. onPause()
biasanya digunakan untuk menyimpan perubahan data sementara dan menghentikan tugas-tugas berat yang berjalan di latar belakang.
Implementasi:
@Override
protected void onPause() {
super.onPause();
// Simpan perubahan, hentikan animasi, atau lepaskan resource sementara
}
Kegunaan: Hentikan animasi, pemutaran audio, atau tugas berat untuk menghemat resource.
5. onStop()
onStop()
dipanggil ketika Activity
tidak lagi terlihat oleh pengguna. Di sini, Activity
benar-benar terhenti, tetapi masih ada di memori. Anda dapat menggunakan metode ini untuk membersihkan resource tambahan atau menyimpan data ke database.
Implementasi:
@Override
protected void onStop() {
super.onStop();
// Hentikan aktivitas yang memakan resource, misalnya query ke server
}
Kegunaan: Bagus untuk mengakhiri sesi network, menyimpan data, atau melakukan cleanup.
6. onRestart()
Metode onRestart()
dipanggil ketika Activity
kembali dari kondisi terhenti, tetapi belum dihancurkan. Ini sering digunakan untuk menyiapkan kembali elemen-elemen UI atau melakukan pembaruan yang diperlukan sebelum masuk ke onStart()
kembali.
Implementasi:
@Override
protected void onRestart() {
super.onRestart();
// Persiapkan ulang Activity sebelum ditampilkan kembali ke pengguna
}
Kegunaan: Persiapan sebelum
Activity
ditampilkan kembali ke foreground.
7. onDestroy()
onDestroy()
adalah tahap terakhir dalam lifecycle. Metode ini dipanggil ketika Activity
benar-benar dihancurkan oleh sistem, baik karena pengguna menutup aplikasi atau sistem memutuskan untuk membersihkan memori. Di sini Anda bisa melepaskan resource yang tidak lagi dibutuhkan.
Implementasi:
@Override
protected void onDestroy() {
super.onDestroy();
// Bersihkan resource sebelum Activity dihancurkan
}
Kegunaan: Ideal untuk membersihkan resource berat, seperti koneksi ke database atau file yang terbuka.
Diagram Lifecycle Activity
Siklus hidup activity biasanya digambarkan dengan diagram yang memperlihatkan bagaimana sistem Android memanggil berbagai callback berdasarkan kondisi yang berbeda. Anda dapat melihat bagaimana Activity
bertransisi dari satu tahap ke tahap lainnya dalam diagram seperti berikut:
Sumber : https://developer.android.com/guide/components/activities/activity-lifecycle
Best Practices Menggunakan Lifecycle
- Simpan Data dengan Benar: Gunakan
onPause()
atauonStop()
untuk menyimpan data penting seperti perubahan formulir atau permainan pengguna. - Lepaskan Resource: Pastikan untuk melepaskan resource yang memakan memori atau baterai di
onPause()
atauonStop()
. - Cegah Memory Leak: Hindari menyimpan referensi ke
Context
atauActivity
di class yang bersifat long-running, karena dapat menyebabkan memory leak.
Kesimpulan
Memahami lifecycle Activity
di Android adalah kunci untuk membangun aplikasi yang efisien dan bebas dari masalah seperti memory leak atau crash tak terduga. Setiap metode callback dalam lifecycle ini memiliki peran yang penting, dan dengan menggunakannya secara tepat, Anda dapat memastikan aplikasi Anda tetap responsif dan hemat resource.
Dengan mengikuti panduan ini, Anda akan lebih siap mengelola Activity
dengan baik di berbagai kondisi penggunaan aplikasi Android.