WP8开发札记(一)WP8应用生命周期管理
在介紹生命周期前,我們先了解兩個相關的概念。
1、墓碑機制:WP8與Android采用的真后臺機制不同,WP8采用的是墓碑機制。一旦從當前應用程序離開(非退出),該應用會被墓碑化,這樣可以更好的管理(節(jié)省)內(nèi)存,當然在節(jié)省的同時,失去一些便捷性:應用程序無法一直在后臺運行。
在墓碑化的過程中,系統(tǒng)保留了應用程序的狀態(tài)以及程序中訪問過的各個頁面的狀態(tài),此外還保存了頁面回退棧。當用戶返回一個被墓碑化的app時,這個app會重建,自動返回離開時的頁面,之前的頁面狀態(tài)仍然被保留。
2、休眠機制(Dormant):休眠狀態(tài)是指App被deactivated,但未進入墓碑化的過渡狀態(tài)。處于這個狀態(tài)的app若被返回(activated),可以不做任何處理就恢復頁面狀態(tài)信息。這是微軟相對7.0增加的內(nèi)容,為了增強用戶體驗而設計。我們剛剛離開App又立馬返回時可以很清楚的感覺到不用像7.0時代那樣等待了。(當然這要看開發(fā)者是否做了相應的代碼。就目前來說,“愛貼吧”可以秒回,“微博”要稍微等一會,“微信”要等蠻久....這里不得不吐槽下大騰訊對WP的消極作風)
接下來,我們就來說說WP8應用的生命周期了。
如圖1.1所示,WP8應用程序的生命周期可以通過4個事件來進行描述。
(圖1.1 應用程序生命周期模型 圖源來自Nokia NEIC WP8培訓)
一、Launching 事件。 當用戶從應用程序列表或者開始菜單進入App的時候觸發(fā)此事件。該事件的觸發(fā)意味著一個新的應用程序?qū)嵗粍?chuàng)建。在應用程序的生命周期里此事件只會被執(zhí)行一次。一般在其響應函數(shù)里讀取存儲的一些配置信息而不要放置耗時較大的操作(如Web服務)。
二、Activated 事件。當用戶導航返回到應用程序時,該事件被觸發(fā)。第一次進入應用時并不會觸發(fā)該事件。在其響應函數(shù)中,我們可以放置一些恢復狀態(tài)的代碼。
三、Deactivated 事件。當應用程序從前臺轉(zhuǎn)入后臺(非關閉),就會觸發(fā)此事件。鎖屏、啟動一個啟動器或選擇器,按開始按鈕鍵都會觸發(fā)此事件。這時可以在代碼里保存相關數(shù)據(jù)。
四、Closing 事件。當應用程序退出的時候會執(zhí)行此事件。通常情況下,當程序處于主頁面且用戶點擊返回按鈕時觸發(fā)。這時候,應用程序才會真正被終止。該事件只會被執(zhí)行一次。在其響應函數(shù)中,可以放置一些保存代碼,將一些信息保存到隔離存儲里。
下圖1.2為VS2012中App模板默認生成的代碼。(位于App.xaml.cs文件中)
圖1.2應用生命周期四個事件對應的響應代碼
?
轉(zhuǎn)載于:https://www.cnblogs.com/tangchong/p/3153388.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的WP8开发札记(一)WP8应用生命周期管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 序列化对象C++对象的JSON序列化与反
- 下一篇: P2P编程(十)