Bu bölümde, uygulama geliştiriciler için çok önemli olan Uygulama Yaşam Döngüsünün (Application Lifecycle) Windows Phone uygulamalarında nasıl kullanıldığını göreceğiz. Uygulama Yaşam Döngüsü'nün üç ana başlığı şunlardır:
- Dormant Mode (Uyku Modu)
- Tombstoning Mode (Ölüm Modu)
- Deactivated (Pasif) - Dormant (Uyku) - Activated (Aktif) Mod Geçişi
UYKU (DORMANT) MODU
Uyku Modu (Dormant Mode), kısaca, bir uygulamanın kapatılmasıdır. Windows Phone cihazı üzerindeki uygulamalar, istemli ya da istemsiz kapatılabilir. İstemli kapatmaya örnek, Windows tuşuna basarak ana ekrana gelme işlemi gösterilebilir. İstemsiz kapatmaya örnekse, belirli bir süre sonra telefonun kilit ekranının açılması ya da dışardan gelen bir arama olarak verilebilir.
Her ne şekilde olursa olsun, bir uygulama kapatılır kapatılmaz ilk önce uyku moduna düşer. Çünkü Windows Phone üzerinde sadece tek bir uygulama Aktif Modda çalışmaktadır. Bunun dışında kalan kapanmış tüm uygulamalar ya Uyku Moduna ya da Ölüm (Tombstoning) Moduna girerler.
Uyku Moduna giren tüm uygulamaların bir sonraki açılışlarında daha hızlı çalışmaları için durum bilgileri kayıtlı tutulur. Aslında bu moddaki hiçbir uygulama çalışmamaktadır. Sadece durum bilgileri tutulur. Böylelikle, durum bilgisi tutulan bu uygulamalar çalışır durumda olmadığı için sistemi de zorlamaz.
ÖLÜM (TOMBSTONING) MODU
Ölüm (Tombstoning) Modunda durum bilgileri tutulmaz. Eğer bir uygulama bu moda girdiyse ona ait tüm durum bilgileri silinir. Bunun nedeni, Windows Phone’un maksimum altı adet uygulamayı Uyku Modu'nda saklayabilmesidir.
Eğer bir uygulamayı kapatıp uyku moduna alır ve ardından altı farklı uygulamayı daha açarsanız, ilk kapatılan uygulamanız Ölüm moduna girerek tüm uygulama durum bilgileri silinir.
DEACTIVATED (PASİF) - DORMANT (UYKU) - ACTIVATED (AKTİF) MOD GEÇİŞİ
Deactivated (Pasif) moddan, Uyku (Dormant) moduna geçerken birtakım olaylar meydana gelir. Bu olaylar aşağıda sırasıyla açıklanmıştır:
- İlk olarak, hangi uygulama sayfasından çıkıldığını tutan OnNavigatedFrom olayı (PhoneApplicationPage‘de sayfa seviyesinde bilgiler tutulur) çağrılır.
- Sonrasında, Deactivated olayı çağırılır. (PhoneApplicationService tüm uygulamalara ait bilgileri tutar. Bu durumda telefonda yalnızca tek bir uygulama çalışabilirken, PhoneApplicationPage'de bu sayı istediğiniz kadar olabilir.)
- Ardından, kullandığınız yapıya yönelik kaynakların bırakılmasını sağlayan Framework: Detach Resources çalıştırılır.
- Uyku moduna geçmeden önce son olarak uygulamanın çalıştığı thread’ler (iş parçacıkları) sonlandırılarak Uyku Moduna getirilir.
Uyku modundan Aktif moda geçerken, bu işlemin tam tersi işler.
- Önce thread’ler açılır.
- Ardından, telefon kaynaklarından uygulama için yer ayrılır.
- Daha sonra, uygulamanın Activated olayı çağırılır
- Uygulama çalışmaya başlamadan önce, kapatılmadan önce hangi sayfada kaldıysa o sayfaya ait bilgilerin tutulduğu OnNavigatedTo olayı çalıştırılarak kaldığı yerden devam etmesi sağlanır.
Şimdiye kadarki bilgileri özetlersek; Windows Phone üzerinde sadece tek bir uygulama Aktif Modda çalışırken, diğer uygulamalar ya Uyku Modunda ya da Ölüm Modu'nda çalıştırılır.
Windows Phone 6 adet uygulamayı Uyku modunda saklayabilir. Geriye kalanlar, Ölüm moduna girerek durum bilgileri silinirken, Uyku modunda kalan uygulamaların durum bilgileri tutularak kaldığı yerden devam etmeleri sağlanır.