Android Activity Lifecycle
Android Activity Lifecycle
(Aktivite Yaşam Döngüsü )
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 videoyu durdurabilir,tekrar oynatabiliriz ya da kapatabiliriz.
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.
Android Aktivite Bileşenleri
Android Activity Lifecycle
onCreate()
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);
private val tag = "Activity Life Cycle"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) // bu metot ile layoutta hazırladığımız ekran tasarımları çizdirilir.
Log.e(tag, "onCreate() metodu çalıştı")
}
onStart()
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.
override fun onStart() {
super.onStart()
Log.e(tag, "onStart() metodu çalıştı")
}
onResume()
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.
override fun onResume() {
super.onResume()
Log.e(tag, "onResume() metodu çalıştı")
}
onPause()
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.
override fun onPause() {
super.onPause()
Log.e(tag, "onPause() metodu çalıştı")
}
onRestart()
Stopped durumdaki bir aktiviteyi kullanıcı tekrar çağırdığında bu metot çalışır ve sonrasında onStart() metodu çalışır.
override fun onRestart() {
super.onRestart()
Log.e(tag, "onRestart() metodu çalıştı")
}
onStop()
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.
override fun onStop() {
super.onStop()
Log.e(tag, "onStop() metodu çalıştı")
}
onDestory() methodu
Bu method kullanıcı ile bağlantısı kalmayan uygulamanın arkaplanı temizlemek için kullanılır.
override fun onDestroy() {
super.onDestroy()
Log.e(tag, "onDestroy() metodu çalıştı")
}
Yorumlar
Yorum Gönder