Android-Activity Lifecycle

Recep Yeşilkaya
3 min readSep 7, 2020

--

Herkese Selamlar, Bugün sizler ile Android Activity Lifecycle üzerine sohbet edeceğiz. Yerlerinizi aldıysanız hadi başlayalım.

Activity

Android’de kullanıcı farklı uygulamalar arasında geçiş yapınca, mevcut uygulamayı kapat sonra tekrar başlat gibi farklı reaksiyonları manuel olarak belirtmekten bizleri kurtarıyor. Arka planda bizler için uygulamaların durumlarını güncelliyor. Bu sayede kullanmadığımız uygulamaların cihazın işlem gücünü zorlaması engelleniyor.

Android’de çeşitli component’leri ekleyebildiğimiz kullanıcının kullandığı ekranlara Activity denir. Activity’e alternatif olarak Fragment’lar da kullanılabilir. Fragment, geliştiriciler için daha kolay bir şekilde ekran tasarımı, sayfa geçişlerini iyileştirme gibi nedenlerden ortaya çıkmıştır. Aynı zamanda Activity, Fragment’a göre daha maliyetlidir. Fakat uygulama için en az bir adet Activity’e ihtiyacımız vardır. Çünkü Fragment’lar bir Activity üzerinde bulunmalıdırlar.

Activity’ler kullanılırken göz ardı edilmemesi gereken bir yaşam döngüsü vardır. Uygulama kapatıldığında, cihaz yan çevrildiğinde, uygulama arka plana alındığında ve benzeri çeşitli senaryolarda sorun yaşamamak için kod bloklarımızı bu yaşam döngüsünü dikkate alarak oluşturmalıyız.

onCreate()

Activity başladığında ilk çağırılacak method’dur. Activity ekranının çizdirilmesi bu metod içerisinde gerçekleşir.

onStart()

onCreate’ten sonra çağırılır. Uygulama arka plana alınıp tekrar çalıştırıldığında onRestart’tan sonra da onStart çağırılır.

onRestoreInstanceState()

Uygulama yan çevrildiğinde, cihazın dili değiştirildiğinde Activity ölür ve tekrardan yaratılır. Bu durumda veri kaybı yaşamamak için onSaveInstanceState ve onRestoreInstanceState method’ları kullanılır. Activity destroy olmadan önce onSaveInstanceState metodunda veri aktarım işlemleri yapılmışsa onRestoreInstanceState metodu ile bu verilere ulaşabiliriz.

onResume()

onStart’tan sonra çalışır. Kullanıcının Activity ile etkileşim kurduğu method’dur.

onPause()

Uygulama arka plana alındığında, örneğin; share işlemi için dialog açtığınızda onPause çalışacaktır. Uygulama kapatıldığında onPause, onStop, onDestroyed gibi işlemlerin başlangıcında ilk çalıştırılacak method’tur.

onSaveInstanceState()

onSaveInstaceState , onStop’tan hemen önce gerçekleşen bir method’dur. Uygulama arka plana alınsa dahi bu metod çalışır. Genelde uygulama destroy olacağı zaman, kaybetmek istemediğimiz verileri bu metod içerisinde tanımlarız daha sonra onRestoreInstanceState içerisinden verilere ulaşırız.

onStop()

onPause metodundan sonra çalışır. Uygulama arka planda iken bu method’ta beklenir. Uygulama tekrar açıldığında onRestart method’u çalıştırılır. Uygulama onStart metoduyla işlem adımlarını gerçekleştirir. Bu süreçte herhangi bir veri kaybı yaşanmaz.

onRestart()

onStop method’undan sonra Activity içerisinde onStart method’una yönlendirme işlemini gerçekleştirilir. Uygulama arka plana alınıp açıldığında veya ekran kapatılıp tekrar uygulama ayağa kaldırıldığında veya çeşitli benzer senaryolarda onRestart çağırılır.

onDestroy()

Activity lifecycle’ının son method’udur. Burada Activity tamamen yok edilir. Eğer kullanıcı Activity’e tekrar geri dönerse, onCreate method’undan başlanıp uygulama tekrardan yaratılır. Uygulama kapatıldığında, cihazın dili değiştirildiğinde, cihaz yan çevrildiğinde ve benzeri senaryolarda çalışacaktır.

İlgili metodları kendi projenizde override edip, proje üzerinde çeşitli senaryoları deneyerek gözlemleyebilirsiniz. Yada ilgili kodların yazılı olduğu projeyi bağlantı’dan inceleyebilirsiniz.

Örnek projede method’ların çalışma sıralarını görmek için Logcat ekranı →Listeleme türünü Error olarak ayarlarsınız işlem sıralarını gözlemleyebilirsiniz.

Android-Activity Lifecycle konu edindiğim yazımın sonuna geldik. Umarım faydalı bir yazı olmuştur. Keyifli günler..

--

--

Recep Yeşilkaya
Recep Yeşilkaya

No responses yet