Tasarım Kodlama

Android Activity Yaşam Döngüsü

Android’de Activity, bir uygulamanın kullanıcı arayüzüne (UI) sahip tek bir ekranı temsil eder ve kullanıcıların bir uygulamayla etkileşime girmesi için bir giriş noktası görevi görür.

Genel olarak, android uygulamaları birden fazla ekran içerecek ve uygulamamızın her ekranı Activity sınıfının bir uzantısı olacaktır. Aktiviteleri kullanarak tüm android uygulama UI bileşenlerimizi tek bir ekrana yerleştirebiliriz.

Android uygulamasındaki çoklu aktivitelerden bir aktivite ana aktivite olarak işaretlenebilir ve bu, uygulamayı başlattığımızda beliren ilk ekrandır. Android uygulamasında her aktivite, gereksinimlerimize göre farklı eylemler gerçekleştirmek için başka bir aktivite başlatabilir.

Örneğin, ana aktivite ekranının bir kişi listesi göstereceği ve ana aktivite ekranından, yeni bir kişi ekleme ve arama gibi görevleri gerçekleştirmek için ekranlar sağlayan diğer aktiviteleri başlatabileceğimiz birden fazla etkinliği olan bir kişi uygulaması olabilir. Kişi uygulamasındaki tüm bu aktiviteler, diğer aktiviteler gevşek bir şekilde bir birlerine bağlıdır, ancak daha iyi bir kullanıcı deneyimi sağlamak için birlikte çalışır.

Genellikle, android’de bir uygulamadaki aktiviteler arasında minimum bir bağımlılık vardır. Uygulamadaki aktiviteleri kullanmak için bu aktivite bilgilerini uygulamamızın manifest dosyasına (AndroidMainfest.xml) kaydetmemiz ve aktivite yaşam döngüsünü düzgün bir şekilde yönetmemiz gerekiyor.

Aktiviteleri uygulamamızda kullanmak için aşağıdaki gibi manifest dosyasında (AndroidMainfest.xml) gerekli niteliklere sahip bir aktivite tanımlamamız gerekiyor.

android:name aktivite niteliği sınıfın adını temsil edecektir ve ayrıca gereksinimlerimize göre bir aktivite öğesine simge, etiket, tema, izinler vb. gibi birden çok nitelik ekleyebiliriz.

Android uygulamasında aktiviteler, aşağıda gösterildiği gibi Activity sınıfının bir alt sınıfı olarak uygulanabilir.

Android uygulamasında gereksinimlerimize göre bu şekilde aktivite tanımlayıp kullanabilirsiniz.

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

Activity yaşam döngüsünün aşamaları arasındaki geçişlerde gezinmek için Activity sınıfı altı temel callback seti sağlar: onCreate(), onStart(), onResume(), onPause(), onStop() ve onDestroy(). Bir aktivite yeni bir duruma girerken sistem bu callbacklerin her birini çağırır.

Android Etkinlik Yaşam Döngüsü Şeması

Genellikle, android aktivite sınıfında, aktivite yaşam döngüsünün farklı aşamalarından geçmek için onCreate(), onStart(), onPause(), onRestart(), onResume(), onStop() ve onDestroy() gibi farklı geri çağırma yöntemleri kullanır.

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


Aktivite callback metotlarını kullanarak, kullanıcı uygulamamıza girdiğinde veya uygulamadan ayrıldığında aktivitemizin nasıl davranacağını tanımlayabiliriz.

Android Etkinlik Yaşam Döngüsü Callback Metotları

Android’de bir aktivite, ömrü boyunca bir dizi durumdan geçer. Callback metotlarını kullanarak durumlar arasındaki aktivite geçişlerini elde edebiliriz.

Android sistemi, programını onCreate() callback yöntemindeki bir çağrı ile başlayan bir Activity içinde başlatır. Bir aktiviteyi başlatan bir dizi callback yöntemi ve bir aktivitiyi parçalayan bir dizi callback metodu vardır.

Bu bölüm, yaşam döngüsü boyunca durumlar arasındaki aktivite geçişlerini işlemek için callback metotları hakkında ayrıntılı bilgi verecektir.

onCreate()

Bu ilk callback metodudur ve sistem ilk kez bir aktivite oluşturduğunda etkinleşir. Activity oluşturma sırasında aktivite Created durumuna geçer.

Bir etkinliğin yaşam döngüsü boyunca yalnızca bir kez gerçekleştirmesi gereken bir uygulama başlatma mantığımız varsa, o mantığı onCreate() yönteminde yazabiliriz.

Android aktivitede bir onCreate() metodu tanımlama örneği aşağıdadır.

onCreate() metodu yürütülmesi bittiğinde, aktivite Created durumuna girer ve sistem onStart() metodunu çağırır.

onStart()

onCreate() metodu tamamlanarak Started durumuna geçen bir aktiviti olduğunda onStart() callback metodu çağrılır. onStart() metodu, bir aktivitiyi kullanıcıya görünür hale getirecek ve bu metodun yürütülmesi çok hızlı bir şekilde bitecektir.

Android aktivitede bir onStart() metodu tanımlama örneği aşağıdadır.

onStart() metodunun yürütülmesi tamamlandıktan sonra, etkinlik Resumed durumuna girer ve sistem onResume() yöntemini çağırır.

onResume()

Bir aktivite Resumed durumuna girdiğinde, sistem onResume() callback metodunu çağırır. Bu durumda aktivite, kullanıcı ile etkileşime girmeye başlar, bu da kullanıcının bir uygulamanın işlevselliğini ve tasarım bölümünü tek ekranda görebileceği anlamına gelir.

Çoğunlukla bir uygulamanın temel işlevi onResume() metodunda uygulanır.

Uygulama, bir telefon görüşmesi veya ekranın kapatılması vb. gibi odağı uygulamadan uzaklaştıracak başka bir aktivite gerçekleşene kadar bu Resumed durumunda kalacaktır.

Resumed durumunda herhangi bir kesinti olayı meydana gelirse, aktivite Paused durumuna girecek ve sistem onPause() yöntemini çağıracaktır.

Paused durumundan Resumed durumuna döndürülen bir aktiviteden sonra, sistem tekrar onResume() metodu çağıracak, bu nedenle onPause() yöntemi sırasında serbest bıraktığımız bileşenleri başlatmak için onResume() metodunu uygulamamız gerekiyor.

Android aktivitede bir onResume() metodu tanımlama örnekleri aşağıdadır.

Resumed durumunda herhangi bir kesinti olursa, aktivite Paused durumuna girecek ve sistem onPause() metodu çağıracaktır.

onPause()

Kullanıcı bir aktiviteden ayrıldığında veya mevcut aktivite Paused duruma geçtiğinde, sistem onPause() metodu çağırır. onPause() metodu, aktivite duraklatılmış durumdayken müziğin durdurulması veya her seferinde yalnızca bir uygulamaya odaklanılabildiği için bir uygulamadan başka bir uygulamaya geçerken bir etkinliğin geçmesi gibi işlemleri duraklatmak için kullanılır.

Android aktivitede bir onPause() metodu tanımlama örneği aşağıdadır.

onPause() metodu yürütülmesi tamamlandıktan sonra, bir aktivite Paused durumuna girdikten sonra ne olduğuna bağlı olarak sonraki metod onStop() veya onResume() olur.

onStop()

Bir aktivite artık kullanıcı tarafından görülmediğinde sistem onStop() metodu çağıracak, aktivite Stopped durumuna girecektir. Bu, mevcut aktivitenin Resumed durumuna girmesi veya yeni başlatılan aktivitenin tam ekranı kaplaması veya yok edilmesi nedeniyle olur.

onStop() metodu, kullanıcının artık ihtiyaç duymadığı tüm uygulama kaynaklarını serbest bırakmak için kullanışlıdır.

Android aktivitede bir onStop() yöntemi tanımlama örneği aşağıdadır.

Sistem tarafından oluşturulan bir sonraki callback metodu, aktivitenin kullanıcı ile etkileşime geri dönmesi durumunda onRestart() veya aktivitenin çalışmayı bitirmesi durumunda onDestroy()‘dur.

onRestart()

Bir aktivite durdurulduktan sonra kendini yeniden başlattığında sistem onRestart() metodunu çağırır. onRestart() metodu, durdurulduğu zamandan itibaren aktivite durumunu geri yükler.

Android etkinliğindeki onRestart() callback metodunu her zaman onStart() metodu izleyecektir.

onDestroy()

Bir etkinlik yok edilmeden önce sistem onDestroy() metodunu çağırır ve bu, android etkinliği tarafından alınan callback metodudur.

Sistem, bu onDestory() metod ya aktiviteyi tamamlar ya da sistem, yerden tasarruf etmek için aktiviteyi yok eder.

Android aktivitede bir onDestroy() metodu tanımlama örneği aşağıdadır.

Kullanıcı bir uygulamadan başka bir uygulamaya geçmek gibi bir aktiviteden ayrılmaya çalıştığında, sistem aktiviteyi tamamen veya kısmen kaldırmak için callback metotlarını kullanarak aktiviteyi kullanıcının kaldığı yerden devam ettirecektir.

Gereksinimlerimize bağlı olarak, aktivite android uygulamasında metotları kullanarak uygulayabiliriz ve her android uygulamasında tüm geri arama yöntemlerini kullanmak gerekli değildir.

Android Activity Yaşam Döngüsü Örneği

Şimdi bir örnekle android aktivite yaşam döngüsünün nasıl çalışacağını göreceğiz. Android uygulamasında aktivitenin yaşam döngüsü sürecini görmek için aktivite geri çağırma yöntemlerini çağırma örneği aşağıdadır.

Burada daha önce oluşturulmuş Android Hello World Uygulaması örneğini kullanacağız ve Android Activity Life Cycle sürecini yakalamak için aşağıda gösterildiği gibi MainActivity.java dosyasında bazı değişiklikler yapacağız.

MainActivity.java Dosya Kodu

\java\com.example.dosyaadi dizininde bulunan MainActivity.java dosyasındaki tüm yaşam döngüsü metotlarını içerecek şekilde yapılan kod değişiklikleri aşağıdadır.

Yukarıdaki kodu incelerseniz “setContentView(R.layout.activity_main);” gibi bir ifade tanımladık. bu, aktivite_main.xml dosyasında tanımlanan tüm UI bileşenlerinin yüklenmesine yardımcı olur ve log mesajları oluşturmak için Log.d() metodunukullanır.

Uygulamamızda birden fazla aktivite dosyamız olabilir ve tüm aktiviteleri

AndroidManifest.xml dosyasında bildirmemiz gerekiyor. Manifest XML dosyasında, (<intent-filter> MAIN action ve LAUNCHER kategori niteliklerini kullanarak,uygulama ilk kez başlatıldığında açılan ana Activity bahsedilir. MAIN action bahsetmediysek, sistem hangi etkinliğin başlaması gerektiğine karar veremeyecek ve ana etkinlik için LAUNCHER kategorisini eklemediysek, ana ekranın uygulamalar listesinde uygulama simgemizin görünmesini sağlayamazdık.

AndroidManifest.xml dosyasının kodu aşağıdaki gibi olacaktır.

1 yorum