Android Activity Lifecycle (Aktive Yaşam döngüsü) Nedir ?

Ömer Ateş
3 min readSep 2, 2018

--

Merhaba,telefon da tablette herhangi bir uygulama çalıştırdığımız da arkaplan da neler oluyor ? sayfalar nasıl oluşturuluyor ? uygulamadan çıktığımızda ne gibi durumlar oluyor ? ya da uygulamayı arkaplana attığımız da neler değişiyor ? Hiç merak ettiniz mi ?

Haydi gelin bakalım ! 😇

Activity ,uygulamalar da nelerin değiştiğini,yüklendiğini bildirmesini sağlayan ve bu eylemlerle bağlantılı olarak uygulamanın ilerleyişini,sonlandırılmasını,durdurulmasını sağlamak amacı ile kullanılmaktadır.Bu sayede kullanıcı uygulamadan çıktığında ya da girdiğinde haber almamızı sağlar.Kaba taslak olarak şu örneği de verebiliriz :Bir video ya da filmi açtığımız da video yu durdurabilir,tekrar oynatabiliriz ya da kapatabiliriz.

Peki bunlardan haberdar olmamız neden önemli ?

Eğer performanslı bir ürün ortaya koyacak ve ürünün sağlıklı çalışmasını istiyorsak ciddi mana da yardım olacaktır.Bu gibi durumlara birkaç örnek vermek gerekirse şunları diyebiliriz :

  • Uygulamamız çalışırken telefona arama geldiğinde ya da uygulamamız üzerine yeni bir uygulama açıldığında bizim uygulama düzgün çalışmaması veya performans kaybı yaşanması
  • Telefonların Ram belleğinde yer tutması ve bunun sonucunda yazılımsal sorunlar ortaya çıkması
  • Uygulama içinde belli birkaç işlem yapıp kullanıcı çıkış yaptığında tekrar girmek istemesi durumda son bıraktığı yerde durmaması
  • Son olarak kullanıcı telefonu yatay ya da dikey konuma çevirdiğinde kaydettiği,yaptığı işlemleri kaybetmesi 😞

işte ! Bu sorunların üstesinden gelebilmemiz için Activity’lerin çalışma prensibini çok iyi anlamamız gerekir.

Activity’lerin çalışma prensibi hangi kavramlardan oluşur ?

onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()

uygulama her başlatıldığında yukarıdaki fonksiyonlar çalışmaktadır.

Activity yaşam döngüsü

Bu kavramlar ne iş yapar ❓

onCreate() Methodu

Activity ilk açıldığında gerçekleşen olayları içinde barındırır.Mutlaka her uygulama olması gereken en önemli methodlardan biridir.Ayrıca uygulama başladığında çalışır ve yapılan işlemlerde tekrardan çalışmasına gerek yoktur.

onCreate() methodu geliştiricinin oluşturduğu viewmodelleri ,nesneleri ya da veri alışverişini sağlayabilir ve bu işlemleri yapmak için savedInstanceState parametresinden yardım alır.Diğer bir yardımcısı ise setContentView() elemanıdır.Bu eleman kullanıcı arayüzünde gösterilmesi istenen xml tasarımı göstermesini sağlar.Örneğin :

setContentView(R.layout.main_activity);

onStart() Methodu

Uygulamamızı açtığımızda onCreate() methodundan sonra çalışan methodtur.Burası kullanıcın gördüğü UI yı başlatıldığı gösterildiği yerdir.Bu method çok hızlı bir şekilde gerçekleşip devamında onResume() methoduna yerini bırakır.

onResume() Methodu

Uygulama başladıktan sonra yapılacak işlemler devamlı durumda olacağı için bu method çağrılır.Uygulamadan çıkılmadığı sürece burada devam edilir.Eğer uygulamamın akışını değiştirecek bir olay gerçekleştiğinde onPause() methodu devreye girer.Sistem tekrar eski durumuna geldiğinde onResume() methoduna geri döner.Örneğin bir kamera uygulaması yaptığımızı düşünelim.kamerayı aktif edeceğimiz kod bloğunu onResume() methodunda yazabiliriz.çünkü uygulamamızın sonlandırılmasını istemeyiz.Diğer methodlarda da yazabiliriz lakin bu pek tavsiye edilmez.

onPause() Methodu

Sistem uygulamanın bir nevi kapandığını bildirdiği zaman çalışır.Yani uygulamamız arkaplana atıldığı zaman ,arama geldiği zaman ya da başka bir uygulama açıldığı zaman bu method çalışır.Bunun için birkaç neden olarak şunlar vardır :

  • onResume() methodunda açıklandığı gibi uygulama kesintiye girdiğinde oluşur.Bu en yaygın durumdur.
  • Android 7.0(API 24) ve yukarısı için çoklu penceresi özelliği aktif olabilmesi için.sistem bir uygulamayı ön planda tutarak diğer ugulamaları kesintiye uğratır.
  • uygulama üzerinde telefondan kaynaklı bir uyarı penceresi vb. dialog açıldığında uygulamamız çalışır gibi görünse de aslında duraklatılmış ve kesintiye uğramıştır.

Yani onPause() methodunu kulllanmaktaki amacımız uygulamamız çalışırken herhangi bir yerde duraklatıldığı zaman gerçekleştirilmesi istenen işlemlerimizi yaparız.

Lakin sistem arkaplandan silindiğinde yda başka bir durumda kapandığında onStop() methodu devreye girer.

onStop() Methodu

Kullanıcı uygulamadan çıkış yaptığında buradaki kodlar çalışmaktadır.Herhangi bir işlemi uygulama kapatırken sonlardırmak istersek bu işlemi burada yapabiliriz.Bu methodun kullanılması CPU da gereksiz işlemlerin kapatılmasına da yardım olarak uygulamamız kullanıcıya çok farkettirmese de kullanıcı dostu olur 👱.

Eğer kullanıcı uygulama ile etkileşimi komple bitti ise onDestory() methodu çalışır.

onDestory() methodu

Bu method kullanıcı ile bağlantısı kalmayan uygulamanın arkaplanı temizlemek için kullanılır.

Bir sonraki yazımda görüşmek üzere.İyi Kodlamalar 😊.

--

--