Mengenal Lebih dalam Activity Lifecycle (Siklus Hidup) di Android
Pada bagian Project Pertama ” Hello World ” pada Android Studio sudah dijelaskan bahwa Activity (aktivitas) adalah sebuah komponen aplikasi yang menyediakan layar yang digunakan pengguna untuk berinteraksi guna melakukan sesuatu, misalnya memilih nomor ponsel, mengambil foto, mengirim email, atau menampilkan peta.
Tiap Activity (aktivitas) diberi sebuah jendela untuk menggambar antarmuka penggunanya. Satu aplikasi bisa memiliki lebih dari satu Activity, dan setiap Activity memiliki siklus hidup.
Siklus hidup aplikasi Android diatur oleh sistem, berdasarkan kebutuhan pengguna, sumber daya yang tersedia, dan sebagainya. Adapun siklus hidup android yaitu :
1. onCreate()
Method ini dipanggil saat activity pertama kali dibuat
2. onStart()
Method ini dipanggil saat sebuah activity tampil ke pengguna
3. onRestart()
Method ini dipanggil ketika activity yang berjalan pada saat itu dihentikan sementara (paused) dan activity sebelumnya dijalankan kembali(resume). (Hasil dari method OnRestart())
4. onFreeze()
Method ini dipanggil ketika activity berada dalam keadaan freeze (tidak merespon) akibat sedang sibuk mengerjakan tugas tertentu pada sistem
5. onPause()
Method ini dipanggil ketika activity di hentikan sementara (pause) dan berikutnya ketika dijalankan kembali akan berada dalam posisi resume dan memanggil method OnResume()
6. onStop()
Method ini dipanggil ketika activity tidak lagi tampak kepada pengguna
7. onRestart()
Method ini dipanggil ketika acitivity dijalankan kembali setelah state Stop
8. onDestroy()
Method ini dipanggil sebelum activity dihancurkan (destroy) oleh sistem (baik secara manual maupun untuk kepentingan pelonggaran memori.
Contoh Penggunaan
Penggunaan siklus hidup aplikasi dapat diterapkan misalnya untuk membuat aplikasi yang terdapat Splash screen sehingga saat aplikasi baru dimulai, akan menampilkan suatu gambar terlebih dahulu disertai dengan musik lalu masuk ke aplikasi utama. Siklus di atas pun berlangsung terus menerus hingga aplikasi atau activity akhirnya di terminasi.
Atau contoh lainnya saat membuat aplikasi game dengan skenario. Game yang dilengkapi dengan waktu, skor dan riwayat. Apabila game sedang dijalankan, tiba-tiba ada panggilan telepon maka aplikasi harus menyimpan posisi terakhir, skor terakhir dan waktu. Maka dari itu dibutuhkan siklus hidup dalam sebuah aplikasi.
Berikut ini contoh penerapan siklus aplikasi :
1. Buat Project Baru
Buatlah project baru pada Android Studio dengan nama siklushidup
2. MainActivity.java
Jika workspace android studio sudah terbuka klik tab MainActivity.java dan tambahkan beberapa method dari siklus hidup diatas. Kita akan menggunakan overidding methodonStart(), onResume(), onPause(), dan onStop().
Untuk menambahkan methodnya tekan CTRL + O pada MainActivity.java dan pilih 4 method yang ada diatas. Jika sudah tambahkan toast agar kita bisa melihat proses siklus hidup pada aplikasi tersebut.
Lebih lengkapnya menjadi seperti ini :
package badoystudio.com.siklushidup; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void onStart() { super.onStart(); Toast.makeText(this, "Siklus hidup onStart",Toast.LENGTH_SHORT).show(); } @Override protected void onResume() { super.onResume(); Toast.makeText(this, "Siklus hidup onResume",Toast.LENGTH_SHORT).show(); } @Override protected void onPause() { super.onPause(); Toast.makeText(this, "Siklus hidup onPause",Toast.LENGTH_SHORT).show(); } @Override protected void onStop() { super.onStop(); Toast.makeText(this, "Siklus hidup onStop",Toast.LENGTH_SHORT).show(); } }
3. Running Aplikasi
Jika sudah silahkan running aplikasi dan metode akan dieksekusi secara berurutan.
Konsep siklus ini penting agar developer tidak mengimplementasikan banyak kelas di waktu yang bersamaan dan pastinya memakan banyak sekali memori. Ketika kelas lain aktif, kelas yang tidak berjalan perlu dihenitkan sementara agar menghemat penggunaan memori.