標籤:style blog http io os 使用 ar 檔案 資料
原文:快速構建Windows 8風格應用30-應用生命週期管理
引言
Windows 8 中可以啟動多個應用並在其中切換,我們沒有必要擔心降低系統速度或消耗電池電量。 因為系統會自動掛起(有時會終止)在後台正在啟動並執行應用。設計良好的應用可以由系統掛起、終止以及重新啟動,並且這些過程看起來該應用一直在運行中。
一、原理
1.當啟用了應用時,無論任何原因,系統都會發送 Activated 事件
2.每當使用者切換到案頭或其他應用時,系統都會掛起你的應用,系統會發送Suspending事件
3.每當使用者切回到你的應用時,系統就會恢複你的應用,系統會發送Resuming事件
生命週期變化
當使用者啟動應用程式,該應用在生命週期中可以發生哪些變化呢?
1.啟動並執行應用,可以進行掛起,變成掛起的應用
2.掛起的應用,可以進行恢複,變成啟動並執行應用
3.掛起的應用,如果系統記憶體不足,將直接被幹掉
多應用在相互切換時的狀態變化
1.啟用App1
2.啟用App2後,App1將被掛起
3.啟用App3後,App2將被掛起,同理任何一個App後,之前的App將被掛起
4.當記憶體有限時,App1將會被終止掉,但是使用者不會得到任何通知
5.使用者啟用App2後,App2立即從掛起狀態恢複
Activated介紹
1.當啟用應用時會觸發Activated 事件
2.Windows.UI.Xaml.Application 類定義了為處理各種不同的啟用類型而可以替代的一些方法,例如:OnActivated和OnLaunched
3.應用應該載入其儲存的應用程式資料並重新整理其顯示的內容
Suspend介紹
1.系統資源專註在於使用者互動的前台應用上
2.掛起的應用不會消耗任何CPU、磁碟和網路資源
3.不活動的應用對電池沒有任何影響,它們是由系統掛起
4.應用之間能夠快速切換
5.掛起的應用會儲存在記憶體中
6.掛起應用中的所有線程都被掛起
Terminated介紹
1.系統需要更多記憶體觸發
2.使用者切換觸發
3.使用者關閉應用觸發
4.系統關機觸發
5.應用崩潰觸發
6.在終止應用期間,沒有事件被觸發… 你應該在應用掛起時儲存所有資訊
二、實現啟用應用
當啟用了應用時,無論任何原因,系統都會發送 Activated 事件。有關啟用類型的列表,可以參閱 ActivationKind 枚舉。
Windows.UI.Xaml.Application 類定義了為處理各種不同的啟用類型而可以替代的一些方法。
對於其中一些啟用類型,有特定的方法可以替代。對於其他啟用類型,則替代 OnActivated 方法。
掛起應用
1.每當使用者切換到案頭或其他應用時,系統都會掛起你的應用。每當使用者切回到你的應用時,系統就會恢複你的應用。當系統復原你的應用時,你的變數和資料結構的內容與系統將你的應用掛起之前的內容相同。系統會將你的應用完全恢複到你離開時的狀態,使使用者感覺你的應用好像一直在後台運行一樣。
2.當你的應用被掛起後,系統會嘗試將你的應用及其資料保留在記憶體中。但是,如果系統沒有資源將你的應用儲存在記憶體裡,則將終止你的應用。當使用者切換回已終止的掛起應用時,該應用會發送 Activated 事件,且應該在其 OnLaunched 方法中還原其應用程式資料。
3.當終止應用時系統不會通知應用,因此當掛起應用時,你的應用必須儲存其應用程式資料並釋放獨佔資源和檔案控制代碼,並且當在終止後又啟用應用時還原這些內容。
恢複應用
1.每當使用者切換到案頭或其他應用時,系統都會掛起你的應用。每當使用者切回到你的應用時,系統就會恢複你的應用。當系統復原你的應用時,你的變數和資料結構的內容與系統將你的應用掛起之前的內容相同。系統會將你的應用完全恢複到你離開時的狀態,使使用者感覺你的應用好像一直在後台運行一樣。但是,應用可能已掛起很長一段時間,因此,它應當重新整理在應用掛起之後可能已發生更改的任何顯示內容(如新聞源或使用者位置)。
2.如果你的應用沒有任何需要重新整理的顯示內容,則它無需處理 Resuming 事件。
三、最佳實務務必執行項
1.一般情況下,將應用恢複為使用者離開該應用時的狀態,而不要重新啟動
2.如果自使用者上次訪問應用以來已經過很長一段時間,則重新啟動應用
3.當應用被掛起時儲存應用程式資料
4.當掛起應用時釋放獨佔的資源和檔案控制代碼
5.在應用被掛起後恢複應用時,如果其內容自使用者上次查看以來有所更改,則更新 UI
6.在應用被終止後恢複應用時,使用已儲存的應用程式資料還原你的應用
7.如果無法預測使用者希望恢複還是重新啟動,則向他們提供選項
禁止事項
1.勿在應用移至螢幕外時終止應用
2.勿還原因崩潰而終止的應用的狀態
3.勿在應用的 UI 中為使用者提供關閉或終止應用的方法
不同情境應該做哪些
相關參考資料:
1.管理應用生命週期和狀態(使用 C#/VB 和 XAML 的 Windows 市集應用);
2. 如何啟用應用;
3.如何掛起應用;
4.如何恢複應用;
5.應用程式生命週期(Windows 市集應用) (Windows);
6.應用的掛起和恢複指南(Windows 市集應用) (Windows);
快速構建Windows 8風格應用30-應用生命週期管理