彩票查询_2021美洲杯决赛:阿根廷vs巴西回放_2025世俱杯参赛球队有哪些_英格兰乙级联赛 - 竞彩足球500

快壓

當(dāng)前位置:首頁 > 電腦技巧 > 正文

Windows Phone 7應(yīng)用程序生命周期的4個(gè)事件

瀏覽次數(shù):|更新日期:2015年04月20日

4項(xiàng)事件——Launching,Closing,Deactivated,Activated
  Windows Phone 7應(yīng)用程序的運(yùn)行中有4項(xiàng)事件需要開發(fā)者處理,以保證應(yīng)用應(yīng)用程序在整個(gè)生命周期中一致的用戶體驗(yàn)。這四個(gè)事件是Launching(啟動(dòng)),Closing(結(jié)束),Deactivated(暫停),Activated(激活)。他們都是PhoneApplicationService類的成員。
  Launching(啟動(dòng))
  當(dāng)用戶單擊手機(jī)應(yīng)用列表里的應(yīng)用圖標(biāo),或者單擊開始頁面里的應(yīng)用程序方磚圖標(biāo),一個(gè)應(yīng)用程序就被啟動(dòng)了。或者當(dāng)用戶單擊屏幕上方的彈出式通知條時(shí),發(fā)出該通知的應(yīng)用程序也會(huì)被啟動(dòng)。無論用戶使用上述何種方式啟動(dòng)應(yīng)用程序,操作系統(tǒng)在創(chuàng)建應(yīng)用程序?qū)嵗耐瑫r(shí)都會(huì)觸發(fā)Launching事件。
  處理Launching事件時(shí),開發(fā)者不應(yīng)該從獨(dú)立外存讀取所有永久數(shù)據(jù),否則會(huì)讓用戶不滿,因?yàn)橄到y(tǒng)在處理完這個(gè)事件之后才在屏幕上顯示應(yīng)用程序首頁,而且裝載永久數(shù)據(jù)耗費(fèi)時(shí)間較長。合理的方法是在應(yīng)用程序啟動(dòng)時(shí)只讀取顯示首頁用到的永久數(shù)據(jù),待應(yīng)用程序啟動(dòng)后以異步方式裝載其他永久數(shù)據(jù)。
  處理Launching事件時(shí),開發(fā)者不應(yīng)該恢復(fù)應(yīng)用程序過去實(shí)例的瞬時(shí)狀態(tài)。每應(yīng)用程序一旦被啟動(dòng),用戶的體驗(yàn)應(yīng)該是一個(gè)從頭開始的實(shí)例。
  當(dāng)Launching事件被處理后,應(yīng)用程序進(jìn)入運(yùn)行狀態(tài)。開發(fā)者應(yīng)該在應(yīng)用程序的執(zhí)行中抓住恰當(dāng)時(shí)機(jī),以增量方式進(jìn)行存取永久數(shù)據(jù),以便改善用戶體驗(yàn)。即使永久數(shù)據(jù)量很小,應(yīng)用程序也應(yīng)該盡量避免在其系統(tǒng)狀態(tài)改變時(shí)一次性集中存取永久數(shù)據(jù)。
  Closing(結(jié)束)
  運(yùn)行中的應(yīng)用程序可能觸發(fā)什么事件完全由用戶的操作決定。一旦用戶單擊退回鍵若干次,并翻過了應(yīng)用程序的首頁,Closing事件就被觸發(fā),此時(shí)應(yīng)用程序?qū)⒈唤K止。
  處理Closing事件時(shí),開發(fā)者應(yīng)該把所有的永久數(shù)據(jù)保存到獨(dú)立外存。
  處理Closing事件時(shí),開發(fā)者沒有必要保存當(dāng)前實(shí)例的瞬間狀態(tài),也就是那些只和本次運(yùn)行相關(guān)的信息。因?yàn)楫?dāng)用戶再次啟動(dòng)應(yīng)用程序并打開首頁時(shí),他體驗(yàn)到的應(yīng)該是一個(gè)從新運(yùn)行的實(shí)例。
  Deactivated(暫停)
  運(yùn)行中的應(yīng)用程序一旦被另一個(gè)應(yīng)用程序替代并退出系統(tǒng)前臺(tái),Deactivated事件就被觸發(fā),此時(shí)應(yīng)用程序被暫停。多種操作能夠引起應(yīng)用程序暫停。當(dāng)用戶單擊開始鍵,或當(dāng)用戶使用啟動(dòng)器和選擇器和系統(tǒng)幫助,或當(dāng)用戶長時(shí)間沒有操作,手機(jī)超時(shí)自動(dòng)鎖屏都會(huì)使當(dāng)前應(yīng)用程序被暫停。不同于Closing事件所對(duì)應(yīng)的應(yīng)用程序被完全終止,Deactivated事件所對(duì)應(yīng)的應(yīng)用程序被系統(tǒng)雪藏。這意味著雖然應(yīng)用程序不再運(yùn)行,但是其運(yùn)行狀態(tài)被操作系統(tǒng)完全保存。這樣就使用戶可以返回一個(gè)被雪藏的應(yīng)用程序,而且返回時(shí)的狀態(tài)跟雪藏前完全一樣,就像應(yīng)用程序根本沒有暫停過一樣。
  處理Deactivated事件時(shí),開發(fā)者應(yīng)該將應(yīng)用程序的當(dāng)前瞬間狀態(tài)完全保存到PhoneApplicationService類的State屬性里。在必要時(shí)恢復(fù)這些瞬間狀態(tài),應(yīng)用程序就能從雪藏狀態(tài)復(fù)蘇。
  處理Deactivated事件時(shí),開發(fā)者應(yīng)該將應(yīng)用程序的永久用戶數(shù)據(jù)保存到獨(dú)立外存。否則當(dāng)被暫停的應(yīng)用程序不再被激活而被重新啟動(dòng)時(shí),永久數(shù)據(jù)會(huì)被丟失。
  處理Deactivated事件的所有操作必須在10秒鐘內(nèi)完成,否則操作系統(tǒng)會(huì)終止應(yīng)用程序。由于這個(gè)緣故,對(duì)于存取大量永久數(shù)據(jù)的應(yīng)用程序,開發(fā)者必須在運(yùn)行過程中隨時(shí)對(duì)其進(jìn)行增量保存。計(jì)算機(jī)基礎(chǔ)知識(shí)
  處理Deactivated事件時(shí),開發(fā)者不應(yīng)該對(duì)應(yīng)用程序做任何破壞性操作,因?yàn)橐粋€(gè)被暫停的應(yīng)用程序隨時(shí)可能在雪藏過程中就復(fù)蘇了,比如用戶快速地連續(xù)單擊開始和退回鍵。
  Activated(激活)
  當(dāng)一個(gè)應(yīng)用程序被暫停和雪藏后,這個(gè)應(yīng)用程序可能再也不被激活。這可能是因?yàn)橛脩魪氖醉搯?dòng)一個(gè)應(yīng)用程序的新實(shí)例,也可能因?yàn)橛脩粲謫?dòng)和雪藏了過多的其他應(yīng)用程序,以至最早被雪藏的應(yīng)用程序超過了應(yīng)用程序堆棧的容量極限而被丟失。
  通常情況下,一個(gè)應(yīng)用程序被暫停和雪藏后需要被再次激活。用戶可多次單擊退回鍵回到雪藏的應(yīng)用程序。當(dāng)造成應(yīng)用程序暫停的啟動(dòng)器和選擇器運(yùn)行完畢,或者被用戶取消,用戶也會(huì)回到雪藏的應(yīng)用程序。當(dāng)用戶返回雪藏的應(yīng)用程序,這個(gè)應(yīng)用程序就被激活了,Activated事件將會(huì)被觸發(fā)。
  處理Activated事件時(shí),開發(fā)者應(yīng)該從PhoneApplicationService類的State屬性中讀取程序雪藏前的瞬間狀態(tài)信息,從而完全恢復(fù)到雪藏前的狀態(tài)。
  處理Activated事件時(shí),開發(fā)者不應(yīng)該從獨(dú)立外存讀取所有永久數(shù)據(jù)。這和處理Launching事件時(shí)不應(yīng)該存取永久數(shù)據(jù)是一個(gè)道理,目的是避免讓用戶長時(shí)間等待應(yīng)用程序啟動(dòng)。