windows phone 7隨筆

來源:互聯網
上載者:User

最近在學windows phone 7的開發,所以抄點東西,怕忘了以後。

1、wp7的架構:wp7的架構基於微軟的.NET平台,在應用架構上是Sliverlight和XNA共同承擔,使用Sliverlight來開發應用程式,使用XNA來開發遊戲

wp7使用.NET的子集,使用sliverlight和XNA的類庫

2、windows phone 7的生命週期

windows phone是一個多任務的作業系統,但是不支援多線程,所以我覺得應該是一個假的多任務

它只有唯一一個第三方應用程式可以在前台運行。當使用者離開當前程式的頁面時,應用應用程式會被作業系統所終止。

螢幕鎖 呼入電話 短訊息 提醒功能 低電量 程式切換 使用者點擊開始按鈕  都有可能引起應用程式中斷

tombstoning 墓碑化凍結  是wp7生命週期的一大特徵

中斷髮生   失去啟用狀態(Deactivated)   程式終止狀態(Terminated)  重新啟用狀態(Activated)  運行狀態(Running)

生命週期處理事件 Application_Launching 程式啟動時調用  程式重新啟用時不調用  通常從Isolated Storage載入一些永久配置資料(persisted data)

Application_Closing 當程式關閉時調用  當程式失去啟用時不調用  通常儲存一些永久配置資料(persisted data)到Isolated Storage中

Application_Activated 當程式重新啟用的時候調用  當程式啟動的時候不調用  通常使用PhoneApplicationService.State儲存一些臨時資料(transient data)

Application_Decativated 當程式失去啟用時調用  當程式關閉的時候不調用  通常從PhoneApplicationService.State讀取一些臨時資料(transient data) 恢複到使用者離開該頁面時候的狀態,保持使用者體驗的一致性。

WP7中有這樣幾個術語,需要注意:

  • Tombstoing:程式在導航出時被系統關閉的狀態。系統保留程式的的狀態,如果返回能夠恢複程式狀態。
  • Page State:程式的視覺狀態。在OnNavigatedTo和OnNavigatedFrom中來添加事件。
  • Application State:程式中無關於某個特定頁面的狀態,使用PhoneApplicationService類調用。
  • Persitent Data:被程式中的所有執行個體享用的資料,一般使用isolated storage來儲存
  • Transient state: 描述程式中實力的資料,一般儲存在PhoneApplicationService提供的State字典資料中。

wp7提供了兩種方式擷取資料:isoloated storage以及state。前者能夠長久儲存資料,而後者只能夠在記憶體還沒有消除你的state的情況下擷取資料。

在WP7中,一個應用如果在10秒鐘內未載入完成將會被系統強制關閉。

3、啟動器和選取器(Launchers&Choosers)

windows phone 應用程式不可以直接存取其他儲存資訊,如連絡人資訊等。

windows phone 應用程式不可以直接調用其他功能,例如電話和短訊息。

啟動器和選取器為應用程式提供間接訪問這些內建功能的方法,啟動器和選取器運行時作業系統可能終止當前的應用程式。

啟動器:啟動一個內建的程式提供給使用者使用   不返回任何資料給調用的程式 

選取器:啟動一個內建的程式提供給使用者使用  返回一些資料給調用的程式  當使用者完成操作是,調用撐血會被重新啟用 並接受到返回的資料  但使用者可能取消操作這樣就返回Null

內建的啟動器 EmailComposeTask  MarketplaceDetailTask  MarketplaceHubTask  MarketplaceReviewTask  MarketplaceSearchTask  MediaPlayerLauncher  PhoneCallTask SearchTask SmsComposeTask WebBrowserTask

內建的選取器CameraCaptureTask  EmailAddressChooserTask PhoneNumberChooserTask  PhotoChooserTask SaveEmailAddressTask  SavePhoneNumberTask

可能沒有tombstone的tasks  PhotoChooserTask  CameraCaptureTask  MediaplayerLauncher EmailAddressChooserTask  PhoneNumberChooserTask  PhoneCallTask(都不會調用Deactived事件) 

 

4、推播通知服務 

windows phone執行模型決定只有一個第三方的應用程式可以再後台運行   第三方的應用程式不能在後台不斷的往Cloud拉資料  微軟提供推播通知服務給第三方應用程式取得更新通知的訊息  伺服器主動能發起的通訊  能有效降低電池的消耗  

目前的版本的windows phone只支援最多15個第三方應用程式使用推播通知服務

訊息類型有

Raw Notification 可以發送任何格式的資料   應用程式可以根據需要加工資料  應用程式相關的通知訊息 只有在應用程式運行時才發送

Toast Notification  發送的資料為指定的XML格式  如果應用程式正在運行 內容發送到應用程式中  如果應用程式不運行彈出Toast訊息框提示訊息

 Tile Notification   發送的資料為指定的XML格式  不會往應用程式進行發送 如果使用者吧應用程式pin 同 start,

那更新資料發送到start screen的title裡面(包含三個屬性,背景,標題和計數器 每個屬性都有固定的格式與位置  可以使用其中的屬性,不宜行三個屬性一起使用)

推送服務的詳解及代碼http://www.lob.cn/jq/wp7/7491.shtml

5、地理位置服務(Location Service)

使用Location Service能協助開發人員為windows Phone 開發具備位置感知(Location-Aware)功能的應用程式

Location Service能從GPS,Wifi和移動網路基站等多種資料來源中擷取位置資訊

根據應用程式的需要,Location Service從一個或者多個資料中計算出位置資訊

有效平衡電池的消耗與位置資訊的準確性   為應用程式提供基於事件(event-driven)的統一介面

 

想辦法減低電池的消耗

  如果可以的話 使用那個較低準確率的資料來源

  當需要的時候開啟地理位置服務,一旦使用完畢立刻關閉該服務

設定準確率的門限值,減低更新頻率

使用狀態更新事件(StatusChanged)監控服務狀態,提醒使用者狀態的更新

提醒使用者初次啟動地理位置服務時需要等待一段時間(15秒到120秒)

相關文章

聯繫我們

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