快速構建Windows 8風格應用30-應用生命週期管理

來源:互聯網
上載者:User

標籤: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-應用生命週期管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.