幾個術語的理解:html
名稱windows |
說明app |
Launchedide |
啓動新程序的啓動函數 |
Closedpost |
經過Back按鍵關閉程序this |
Deactivatedurl |
一個正在程序運行,此時按start鍵,程序停用,此後進入墓碑化spa |
Activated3d |
程序從墓碑化復活,即激活 |
生命週期的描述:當咱們在start頁面運行一個程序A時,此時程序A進入啓動(Launched)階段,啓動完成以後,程序通常會至關長的時間處於running狀態,若是此時你按Back鍵,則直接進入Closed狀態,還有就是在運行過程當中有突發事件,好比來電話,來信息,或者你須要運行程序B,你就按Start鍵,在按Start鍵的時候處於Deactivated狀態,而後在運行程序B的過程當中,程序A一直處於Tombstoning墓碑化狀態(除非你從Start頁從新啓用程序A的新實例),在操做程序B的過程當中你若是長按Back鍵,系統會調出卡片式任務管理器,裏面就會包含程序A,程序B,Start頁面,若是點擊程序A,此時程序A就會被激活,進入運行狀態,之至改程序被關閉,程序A的生命週期就完成了;
在App.xaml.cs文件中能夠找到改變這幾個狀態時所觸發的事件,事件裏面有註解就不在詳細說明了
效果:
那麼下面的案例就是在用戶關閉程序後,在從任務管理器中從新激活或者經過Back鍵返回到程序,進行數據的暫存;其實就是讓用戶感受不到程序已經關閉了,當用戶程序回到程序時,和用戶離開時呈現出來的相一致;
因爲MainPage.xaml頁面沒有任何修改,因此沒有貼出,MainPage隱藏文件代碼:
從上面代碼中能夠看出咱們是把數據保存到App類中的一個公共屬性中了,咱們在觸摸事件中把自加的數值賦值於App公共屬性appKey,在MainPage頁面加載後調用OnNavigatedTo方法進行初始化,能夠看出咱們把臨時數據保存在App類中了,那麼App類中是怎麼實現的那;App類隱藏文件中添加的代碼以下:
即保存數據的公共屬性,其中咱們用到的兩個方法,並把他們實現:
能夠看到咱們是在用戶遇到突發事件(如電話)時用PhoneApplicationService.Current.State進行存儲的,並在用戶經過任務管理器或者Back鍵時激活改程序,並用
;任務管理器的的效果圖:PhoneApplicationService.Current.State.TryGetValue方法獲取值,該方法的好處是不會報出異常信息
PhoneApplicationService.Current.State.TryGetValue方法獲取值,該方法的好處是不會報出異常信息
windows phone 7 對多個應用程序的管理:windows phone 7 是經過棧對多個程序進行管理的,當咱們運行程序A的時候,若是咱們須要運行程序B,那麼咱們會按Start鍵,Start鍵就會把程序A壓入棧中(此時程序A是中止運行的),若是須要運行程序C,一樣程序B也會被壓入棧中,那麼按Back鍵就會把當前程序C終止,並從棧中得到最後一個壓入程序B,進行激活使用;