Windows phone 8 Fast Resume 快速恢複淺析(一)

來源:互聯網
上載者:User

(一)概述

 
 

Windows phone 8 新添加的很重要的一個特性就是 Fast Resume。

這個特性應用的情境如下:

對於wp7而言,使用者瀏覽一段時間app內容後,如果從程式功能表列點擊app表徵圖,那麼程式會重新從Mainpage開始啟動,

而在wp8我們可根據業務需求,重新點擊app表徵圖後,回到之前瀏覽的頁面。

 
 

引用madn上的圖片來直觀的說明下:


圖中使用者進入程式後,進入Page1,然後通過Home鍵回到了案頭,這個時候,如果使用者重新點擊程式主表徵圖A,那麼

在WP7系統中會得到如下的結果:


,使用者重新回到了Main Page 之前瀏覽的介面均被清除。

 
 

而如果在WP8中如果程式加入了Fast Resume 的特性,那麼使用者會得到如的體驗:

 
 


使用者重新回到Page1,在使用者體驗上和使用者點擊Back鍵一致。這種特性在某些方面有利於增加使用者體驗,開發人員因此也有了更多的選擇機會。

 
 

(二)如何?

 
 

對於實現的問題,我會根據需求情境來具體說明,分我如下兩種種情況:

1.程式不存在SecondTile,也就是使用者只能通過程式AppList和MainTile啟動

2.程式存在SecondTile,一下簡稱deeplink,即使用者可以通過入口直接進入非MainPage介面

 
 

(1)最簡單的情境,程式不存在SecondTile

 

a.原理

1、對於wp程式而言,在執行Navigate的時候會觸發NavigatXXX相關的一系列事件,其中RootFrame的Navigating事件的參數中存在NavigatingCancelEventArgs 類型的參數,我們可以通過此參數中的屬性擷取到本次導航的類型,及要導航到的Uri路徑,並且可以通過設定此參數進行本次導航的取消。

 
 

2、在App的WMAppManifest.xml檔案中我們可以設定程式的ActivationPolicy這個參數控製程序是否支援FastResume:


如此設定後,概述中提到的情境,使用者第二次點擊MainTile進入程式會觸發兩次Navigating,一次NavigationModel參數類型為Reset如下:


之後會再次導航,此時NavigationMode為New如下:


 
 

b.實現

看到應該已經有思路如何來處理了,我們在修改WMAppManiFest.xml後,需要在app.xaml.cs中做如下改動:

首先中第127行,添加Navigating事件處理函數


 
 

在事件處理中操作如下:


 
 

上面提到當設定Fast Resume後 進入程式會執行兩次導航,所以需要在第一次類型為Reset的時候記錄下來,當第二次執行New類型的導航時,將本次導航取消,直觀的說明了此函數的處理:

 
 

當從MainTile第二次進入時取消到MainPage的導航即可


 
 

對於第二種情況存在SecondTile的時候的處理我會在後面繼續更新出來,謝謝支援!

如需demo,請留下郵箱,我會發給你來學習:-)

 
 

另外WP8開發交流群:QQ:182659848

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.