Setiap `Activity` di Android melewati serangkaian status (states) sejak dibuat hingga dihancurkan. Perubahan status ini disebut 'siklus hidup Activity', dan Android memanggil metode callback tertentu seperti `onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop()`, dan `onDestroy()` saat transisi status terjadi. Memahami kapan dan mengapa metode-metode ini dipanggil sangat penting untuk membangun aplikasi yang stabil dan responsif.
Bagi pengembang pemula, salah satu tantangan terbesar adalah memahami bagaimana aplikasi bereaksi terhadap interaksi pengguna atau perubahan sistem. Misalnya, ketika pengguna menekan tombol 'Home', menerima panggilan telepon, atau memutar layar (rotasi konfigurasi), Activity Anda akan berganti status. Jika Anda tidak mengelola sumber daya atau data dengan benar pada transisi ini, aplikasi Anda bisa mengalami kebocoran memori, data hilang, atau bahkan crash.
Beberapa metode kunci yang perlu Anda ketahui meliputi: `onCreate()` yang dipanggil saat Activity pertama kali dibuat, tempat Anda menginisialisasi komponen UI dan data awal; `onResume()` yang dipanggil saat Activity siap berinteraksi dengan pengguna; dan `onPause()` yang dipanggil saat Activity kehilangan fokus (misalnya, aplikasi lain muncul di atasnya). Metode `onStop()` berarti Activity tidak lagi terlihat oleh pengguna, dan `onDestroy()` adalah pemanggilan terakhir sebelum Activity dihapus dari memori.
Dengan memanfaatkan metode-metode siklus hidup ini, Anda dapat melakukan tugas-tugas penting seperti menyimpan status data pengguna sebelum Activity dihancurkan (`onSaveInstanceState()`), melepaskan sumber daya yang tidak terpakai seperti koneksi jaringan atau sensor di `onPause()` atau `onStop()`, dan memuat ulang data yang relevan di `onResume()`. Hal ini memastikan pengalaman pengguna yang mulus dan efisien dalam penggunaan sumber daya.
$ import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.util.Log
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d("Lifecycle", "onCreate: Activity created")
}
override fun onResume() {
super.onResume()
Log.d("Lifecycle", "onResume: Activity resumed")
}
}
Android OS bisa kapan saja menghentikan atau menghancurkan Activity Anda untuk menghemat memori, terutama jika ada aplikasi lain yang membutuhkan sumber daya, jadi jangan pernah berasumsi Activity Anda akan hidup selamanya!