Android'de Activity'nin yaşam döngüsü hakkında ne anlatabilirsiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Activity yaşam döngüsü, her Activity örneğinin oluşturulmasından yok edilmesine kadar geçen durumlar ve bunlar arasındaki geçişler bütünüdür. Bu, geri çağırma (callback) metodları kümesiyle tanımlanır.
Yaşam döngüsünün temel callback metodları:
onCreate():Activityilk oluşturulduğunda çağrılır. Burada kullanıcı arayüzü başlatılır, veri bağlama ve diğer tek seferlik işlemler yapılır.onStart():Activitykullanıcının gözüne görünür hale geldiğinde çağrılır, ancak henüz odaklanmamıştır.onResume():Activityodak alır ve aktif hale gelir. Burada genellikle animasyonlar ve diğer etkileşimli işlemler başlatılır.onPause():Activityodak kaybeder, ancak hâlâ görünürdür (örneğin, üzerine yarı saydam bir diyalog penceresi açılmışsa). Burada kaynak yoğun işlemler durdurulmalıdır.onStop():Activityartık kullanıcının gözüne görünmüyorsa çağrılır. Burada kaydedilmemiş veriler saklanır ve artık gerek olmayan kaynaklar serbest bırakılır.onDestroy():Activityyok edilmeden önce çağrılır. Burada kalan tüm kaynaklar serbest bırakılır.onRestart():onStop()sonrası tekrar gösterildiğinde çağrılır. ArdındanonStart()gelir.
Grafiksel olarak yaşam döngüsü şu şekilde temsil edilebilir:
Created -> Started -> Resumed -> Paused -> Stopped -> Destroyed
Ayrıca geçişler de vardır:
- Created -> Started (
onStart()sonrası) - Started -> Resumed (
onResume()sonrası) - Resumed -> Paused (odak kaybı durumunda)
- Paused -> Resumed (odak geri kazanıldığında)
- Paused -> Stopped (tamamen gizlendiğinde)
- Stopped -> Destroyed (aktivite sona erdiğinde)
- Stopped -> Restarted -> Started (
onRestart()sonrası)
Bu callback metodlarında Activity durumunu doğru yönetmek, bellek sızıntılarını önlemek ve uygulamanın yapılandırma değişiklikleri veya Activityler arası geçişlerde düzgün davranmasını sağlamak önemlidir. Durumu kaydetmek için onSaveInstanceState() kullanılır (onStop() öncesi) ve geri yükleme onCreate() veya onRestoreInstanceState() içinde yapılır (onStart() sonrası).
onSaveInstanceState() kullanımına örnek:
// Durumu kaydet
override fun onSaveInstanceState(outState: Bundle) {
outState.putString("my_data", "some_value")
super.onSaveInstanceState(outState)
}
// Durumu geri yükle
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
if (savedInstanceState != null) {
val myData = savedInstanceState.getString("my_data")
// myData'yı kullan
}
}