Android Activity Lifecycle

Sibel Yıldız
Wellbees Tech
Published in
3 min readSep 19, 2020

Merhabalar, bir kullanıcı uygulamada gezinirken, uygulamadan çıktığında ve uygulamaya geri döndüğünde arka planda neler oluyor hiç merak ettiniz mi? Şuan buradasınız evet dediğinizi duyar gibiyim. O halde hadi gelin hep birlikte merakımızı giderelim :)

İşte tamda yukarıda bahsettiğimiz gibi durumlarda Activity, yaşam döngülerinde farklı durumlara geçer. Activity sınıfı, activity’nin bir durumun değiştiğini bilmesine olanak tanıyan bir dizi callback sağlar: sistemin bir activity yarattığını, durdurduğunu veya devam ettirdiğini ya da activity’nin bulunduğu süreci yok ettiğini bu callbackler ile bildirir.

Yaşam döngüsü callback methodları sayesinde kullanıcı activity’den ayrıldığında ve yeniden girdiğinde activity’nin nasıl davranacağını bildirebiliriz. Örneğin, bir video oynatıcı oluşturuyorsanız, kullanıcı başka bir uygulama geçtiğinde videoyu duraklatabilir ve ağ bağlantısını sonlandırabilirsiniz. Kullanıcı geri döndüğünde, ağa yeniden bağlanabilir ve kullanıcının videoyu aynı noktadan devam ettirmesine izin verebilirsiniz.

Kısaca her callback, belirli bir durum değişikliğine uygun belirli bir işi gerçekleştirmenize olanak tanır. Doğru zamanda doğru işi yapmak ve geçişleri doğru şekilde yönetmek, uygulamanızı daha sağlam ve performanslı hale getirir. Örneğin, yaşam döngüsü callback’lerinin iyi bir şekilde uygulanması, uygulamanızın aşağıdakilerden kaçınmasını sağlamaya yardımcı olabilir:

  • Uygulamanızı kullanırken kullanıcı bir telefon araması alırsa veya başka bir uygulamaya geçerse çökme.
  • Kullanıcı activity’i aktif olarak kullanmadığında bellek vb. sistem kaynaklarını tüketmek.
  • Kullanıcı uygulamanızdan ayrılırsa ve daha sonra geri dönerse kullanıcının kaldığı yerden devam edememesi.
  • Ekran yatay ve dikey yön arasında döndüğünde kullanıcının işlemlerini kaybetmesi.

Activity Lifecycle Methodları

Şimdi bir activity ekranda görüntülendiği ilk andan yok edildiği ana kadar ne gibi işlemlerden geçer bunları inceleyelim.

Activity lifecycle

onCreate()

onCreate methodu uygulama başlatıldığında çalışan ilk methoddur. İsminden de anlaşılacağı gibi activity burada oluşturulur. Activity’nin ömrü boyunca yalnızca bir kez çalışır. Uygulama açıldığında gerçekleşmesini istediğimiz her olayı burada yazarız. Activity oluşturulduktan sonra Activity başlatıldı durumuna girer ve sistem hızlı bir şekilde onStart() ve onResume() methodlarını çağırır.

onStart()

onCreate metodundan hemen sonra çalışan methoddur. Bu methodda uygulama, activity’ nin ön plana girmesi ve etkileşimli hale gelmesi için hazırlanırken, activity’i kullanıcı tarafından görülebilir hale getirir.

onStart() methodu hızlı bir şekilde tamamlanır ve yerini onResume methoduna bırakır.

onResume()

Bu mehtod kullanıcının activity ile etkileşim kurduğu methoddur. Uygulama akışını değiştirecek bir durum gerçekleşmediği sürece uygulama bu methodda kalır. Örneğin bir telefon araması almak, kullanıcının başka bir activity’e gitmesi veya cihaz ekranının kapanması gibi akışı değiştirecek bir durum gerçekleştiğinde activity duraklatıldı durumuna girer ve onPause() methodu çalışır. Sistem tekrar eski durumuna geldiğinde onResume() methoduna geri döner.

onPause()

Sistem bu methodu, kullanıcının activity’den ayrıldığının ilk göstergesi olarak çağırır. Ancak bu her zaman activity’nin yok edildiği anlamına gelmez. Activity’nin artık ön planda olmadığını gösterir.

Activity duraklatılmış durumdayken devam etmesi veya etmemesi gereken ve kısa süre içinde devam etmeyi istediğiniz işlemleri duraklatmak veya ayarlamak için onPause () methodu kullanılmalıdır. Bir activity’nin bu duruma girmesinin birkaç nedeni vardır. Örneğin uygulama üzerinde telefondan kaynaklı bir uyarı penceresi, diyalog penceresi açılmış olabilir veya kullanıcı çoklu pencere moduna girmiş olabilir. Bu durumlarda uygulama çalışır gibi görünse de aslında duraklatılmış ve kesintiye uğramıştır. Burada kullanıcı activity’e dönüp sistem tekrar eski durumuna geldiğinde onResume() methoduna döner.

Not: Eğer öncelikli uygulamanın daha fazla belleğe ihtiyacı varsa sistem bu methodda activity’i sonlandırabilir. Bu durumda kullanıcı activity’e geri döndüğünde OnResume() methoduna dönmez, activity onCreate() methodu ile yeniden oluşturulur.

Kullanıcı activity’e geri dönmez activity tamamen görünmez hale gelirse, sistem onStop() methodunu çağırır.

onStop()

Burada acticity durduruldu durumuna girmiştir ve artık kullanıcı tarafından görülmüyor. Bu, örneğin yeni başlatılan bir activity tüm ekranı kapladığında meydana gelebilir. Activity çalışması bitmiştir ve yaşamı sona ermek üzeredir.

Bu methodda iken iki ihtimal vardır. Ya kullanıcı activity’e tekrar geri döner ya da Activity tamamen sonlanır. Eğer kullanıcı activity’e geri dönerse sistem onRestart() methodunu çağırır ve Activity onStart() methodundan devam eder. Eğer activity sonlanırsa onDestroy() methodu çalışır.

onDestroy()

Acticity Lifecycle’ın son methodudur. Yaşam döngüsü tamamlanır. Burada activity tamamen yok edilir. Yok edilmeden önce uygulama arkaplanı burada temizlenir.

Umarım bu yazım sizin için faydalı olmuştur. Android Lifecycle’ları hakında daha fazla bilgiye sahip olmak istiyorsanız burayı inceleyebilirsiniz.

Bir sonraki yazımda görüşmek üzere.

--

--