Android Activity Lifecycle-Android Yaşam Döngüsü

Merhabalar, bugün sizlerle Android uygulama geliştirirken dikkat etmemiz gereken önemli bir yapı olan Activitylerin yaşam döngülerini öğreneceğiz.

Activity Nedir?

Bir kullanıcı arayüzüne sahip olan ve kullanıcıların işlemler yapabilmesi için özelleştirilmiş ekranları oluşturan uygulama bileşenidir. Örneğin fotoğraf çekme, haritaları görüntüleme, mesaj alıp-verme gibi birçok faaliyet activity kullanılarak gerçekleştirilir.

Bir Android uygulamasında birbirleriyle bağlantılı activity kullanarak çeşitli işlemleri yapabilirsiniz. Uygulamada main(ana) bir activity bulunur. Uygulama açıldığında bu gösterilir. Diğer işlemleri yapmak istendiğinde diğer ilgili activityler çağrılır.

Activity Lifecycle (Yaşam Döngüsü)

Android Process’lerin durumu genellikle activity ve uygulamadaki diğer bileşenler tarafından belirlenir. Bir activity ekranda görüntülendiği ilk andan yok edildiği ana kadar birçok işlemden geçer. Bu süreçlerin takip edilmesine Lifecycle of An Activity denir. Activity yaşam döngüsü Activity Stack yardımıyla kontrol edilmektedir.

Activity Stack Nedir?

Herhangi bir Android cihazda çalışan herhangi bir uygulama için Android Runtime olarak Activity Stack yapısını çalıştırmaktadır. Bir uygulama çalışmaya başladığı zaman Stack’in en tepesine yerleştirilir. İkinci activity açıldığı zaman birinci activity aşağı indirilir üstüne yeni activity eklenir. Stack yapısında en tepedeki activity (running activity) olarak adlandırılır. Activity görevini tamamladığı zaman Stack’de bir geri indirilir ve diğer activity Stack yapısında bir yukarı çekilir.

Sistemde kaynak ihtiyacı ortaya çıktığı anda en eski activitylerden başlayarak aşağıdan yukarıya doğru activityleri tek tek kill eder.

Activity Stack, programlamada sıklıkla karşımıza çıkan Last In First Out (Son Giren İlk Çıkar) yapısını kullanıyor.

Activity States

Bir activity uygulama çalıştırıldığında 4 farklı durumda olabilir.

  • Active-Running : Activity’nin Stack alanında en tepede yer alır. Kullanıcının etkileşime girdiği etkin alandır. Kaynak sıkıntısı çekildiği zaman en kill edilen Activity’dir.
  • Paused : Kullanıcıya gösterilir fakat etkileşimde olunan bir Activity değildir. Bellekte tutulur.
  • Stopped : Activity ekranda gözükmemektedir. Başka bir activity tarafından yeri alınmıştır.
  • Killed : Sistemde yer açmak için öldürülmüş Activity’dir. Activity Stack üzerinde yer alır.

Activity Lifecycle Methods

Activity sınıfı activity’de herhangi bir değişiklik olduğunda bu durumları ele alabilmek için birçok metod kullanır. Bu metodlar CallBack metodları olarak da bilinir. Metodların ne iş yaptıklarını öğrenelim.

  • onCreate() : Activity’nin ilk çalışan metodudur. Activity oluşturmak, sınıf ve objeleri çağırmak için kullanılır. Kaydedilmiş activity durumunu çağırmak için kullanılır.
  • onRestart() : Durdurulmuş bir activity tekrar etkinleştirmek için kullanılır.
  • onStart() : onCreate() metodu çalıştıktan sonra çağrılır. Bu aşamada sistem activity ön plana çıkarır, kullanıcının etkileşiminde olur.
  • onResume() : Activity kullanıcı ile etkileşimde olduğu zaman dilimlerinde çağrılır. Hemen ardından onPause() gelir.
  • onPause() : Durdurulmuş bir activitye devam etmek için çağrılır. Kaydedilen verileri kullanmak, veri sürekliliğini sağlamak, animasyonları durdurmak ve birçok olay için kullanılır.
  • onStop() : Activity kullanıcıya gözükmediği durumda çağrılır. onStop() döngüsüne girmiş bir activity geri gelip tekrar kullanıcıyla etkileşime geçmesi için onRestart() metodunu kullanması gerekir.
  • onDestroy() : Activity’nin yok edilmeden önceki son çağrılma yeridir. isFinishing() metoduyla activity’nin kendisinin mi yoksa sistem tarafından mı yok edildiğini sorgular ve yok eder.

Gelecek yazılarda görünceye dek kendinize iyi davranın :)

Android Developer 👨🏻‍💻