自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Windows Phone 7處理休眠和墓碑的恢復(fù)

移動(dòng)開發(fā)
休眠狀態(tài)和墓碑狀態(tài)這兩個(gè)狀態(tài)會(huì)比較容易讓人混淆的,休眠狀態(tài)時(shí),程序停止運(yùn)行,但不同的是此時(shí)整個(gè)進(jìn)程還是存在于內(nèi)存中。當(dāng)恢復(fù)這個(gè)程序時(shí),就不需要?jiǎng)?chuàng)建一個(gè)新的實(shí)例。

休眠狀態(tài)和墓碑狀態(tài)這兩個(gè)狀態(tài)會(huì)比較容易讓人混淆的,休眠狀態(tài)時(shí),程序停止運(yùn)行,但不同的是此時(shí)整個(gè)進(jìn)程還是存在于內(nèi)存中。當(dāng)恢復(fù)這個(gè)程序時(shí),就不需要?jiǎng)?chuàng)建一個(gè)新的實(shí)例。這樣就加快了程序恢復(fù)和切換的速度,并且從休眠狀態(tài)恢復(fù)時(shí)我們不需要去恢復(fù)墓碑?dāng)?shù)據(jù)。一般情況下點(diǎn)擊home鍵,程序會(huì)進(jìn)入休眠狀態(tài),當(dāng)前臺(tái)程序在運(yùn)行過程中,內(nèi)存不足或者不足以讓程序流暢運(yùn)行時(shí),系統(tǒng)會(huì)執(zhí)行一些操作來釋放內(nèi)存,此時(shí)程序就可能從休眠狀態(tài)變換為的墓碑狀態(tài)。一個(gè)程序進(jìn)入到墓碑狀態(tài)時(shí),其進(jìn)程被終止掉,但是程序的回退棧中的信息,以及我們保存的一些信息會(huì)保留在內(nèi)存中。

WP7程序的生命周期如下圖所示

WP7程序的生命周期

程序恢復(fù)時(shí)會(huì)觸發(fā)Application類中的Activated 事件,我們可以通過檢查IsApplicationInstancePreserved參數(shù)來判斷程序是從休眠狀態(tài)還是墓碑狀態(tài)返回的,在此方法中我們可以用來恢復(fù)之前在Deactivated事件中保存的數(shù)據(jù)。

處理的代碼如下:

  1. private void Application_Activated(object sender, ActivatedEventArgs e)  
  2. {  
  3.   if (e.IsApplicationInstancePreserved)  
  4.   {  
  5.     //從休眠狀態(tài)恢復(fù)  
  6.   }  
  7.   else  
  8.   {  
  9.     //從墓碑狀態(tài)恢復(fù)  
  10.     //這時(shí)候程序在內(nèi)存中的信息已經(jīng)被清除掉了,需要在這里處理如何恢復(fù)你之前的數(shù)據(jù)  
  11.   }        

調(diào)試程序墓碑狀態(tài)的恢復(fù)可以通過在vs上設(shè)置來實(shí)現(xiàn)這一種模擬的效果,設(shè)置如下:

從休眠狀態(tài)恢復(fù)到程序的時(shí)候,如果這時(shí)候我們?cè)诔绦蛑姓诎l(fā)送http請(qǐng)求的話,有可能這個(gè)請(qǐng)求會(huì)被取消掉,這時(shí)候我們需要在程序中來捕獲這個(gè)異常并進(jìn)行處理。處理代碼如下:

  1. private void GetSomeResponse(IAsyncResult MyResultAsync)  
  2. {     
  3.      HttpWebRequest request = (HttpWebRequest)MyResultAsync.AsyncState;     
  4.      try     
  5.       {    
  6.          HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(MyResultAsync);     
  7.          if (response.StatusCode == HttpStatusCode.OK && response.ContentLength > 0)     
  8.          {     
  9.              using (StreamReader sr = new StreamReader(response.GetResponseStream()))   
  10.             {    
  11.                //……                         
  12.              }    
  13.         }    
  14.      }    
  15.      catch (WebException e)    
  16.      {    
  17.             
  18.        if(e.Status == WebExceptionStatus.RequestCanceled)    
  19.              //這里有可能就是從休眠和墓碑狀態(tài)返回來的  
  20.              //可以在這這里處理休眠和墓碑狀態(tài)的恢復(fù),例如重新發(fā)送http請(qǐng)求……  
  21.        else    
  22.           {    
  23.              //其他的異常  
  24.              using (HttpWebResponse response = (HttpWebResponse)e.Response)    
  25.               {    
  26.                   MessageBox.Show(response.StatusCode.ToString());    
  27.              }    
  28.          }    
  29.      }    

原文鏈接:http://www.cnblogs.com/linzheng/archive/2012/01/17/2324991.html

【編輯推薦】

  1. 詳解WP開發(fā)中MVVM模式的綁定功能
  2. Windows Phone 7數(shù)字羅盤使用指南
  3. 淺談Windows Phone應(yīng)用程序生命周期
  4. 詳解Windows Phone開發(fā)中的墓碑機(jī)制
責(zé)任編輯:王曉東 來源: 博客
相關(guān)推薦

2013-07-31 13:03:51

Windows PhoWindows Pho

2012-07-31 09:44:27

Windows Pho

2012-05-25 09:09:25

Windows Pho

2009-08-27 09:57:24

Power7處理器

2011-07-12 09:20:32

Windows 8Windows Pho

2012-08-17 13:44:26

Windows Pho

2009-09-09 16:47:31

Power 7處理器

2010-02-11 12:47:39

IBM Power7處

2011-04-20 11:04:23

LinuxHTTP 302

2010-12-01 13:40:13

樞軸控件Windows Pho

2010-10-11 14:42:49

Windows Pho

2010-12-01 13:55:29

地圖插件Windows Pho

2012-08-17 09:15:16

Windows Pho

2011-04-25 13:06:57

iPad2蘋果A5處理器

2010-11-26 16:00:08

Windows Pho

2021-06-22 05:41:07

Windows10操作系統(tǒng)微軟

2025-02-13 00:34:22

Spring對(duì)象系統(tǒng)

2013-07-30 11:18:37

Windows PhoWindows Pho

2010-05-05 13:16:02

Windows PhoWindows CE

2010-12-01 09:50:21

全景視圖Windows Pho
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)