İçeriğe geç

Android Activity Lifecycle

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 ! 🙂

Öncelikle activitylerin yaşam döngüsü aşağıdaki gibi.

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

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

Uygulama açık iken bazı Senaryolar

Uygulama açıldığında

onCreate() –> onStart() –> onResume()

Geri tuşuna basıldığında

onBackPressed() –> onPaused() –> onStop() –> onDestroy()

Home tuşuna basıldığında

onPaused() –> onStop()

Home tuşuna basıp son uygulamalardan açtığımızda veya uygulamamızın ikonuna basarak açtığımızda

onRestart() –> onStart() –> onResume()

Üst bildirim ekranından başka bir uygulama açtığımızda veya ayarları açtığımızda

onPaused() –> onStop()

Başka bir uygulamada isek geri butonuna bastığımızda veya ayarlarda isek geri butonuna bastığımızda

onRestart() –> onStart() –> onResume()

Ekranda herhangi bir dialog ekranı açıldığında

onPause()

Dialog ekranını kapattığımızda veya geri tuşuna bastığımızda

onResume()

Telefon ekranı kapandığında

onPaused() –> onStop()

Telefon ekranı tekrar açıldığında

onRestart() –> onStart() –> onResume()

Telefonu döndürdüğümüzde (yatay )

onPause() –> onStop() –> onSaveInstance() –> onDestroy()

Telefonu dikey ‘e tekrar döndürürsek

onCreate() –> onStart() –> onRestoreIntanceState() –> onResume()

onCreate() Methodu

Activity ilk açıldığında gerçekleşen olayları içinde barındırır. Her activity ‘de olan metod. 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.

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.

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

Tarih:Android Programlama

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir