0

我目前正在開發一個應用程序,該應用程序的位置應該發送到服務器。我已經通過the MSDN articles在後臺代理和訪問位置。這工作到目前爲止。當我觸發的位置變化比設置的MovementThreshold更遠時,我的位置被傳輸到服務器。如何在Windows Phone 8中調試後臺位置代理程序

但是,我讀過背景代理測試可能會很複雜。如果您使用模擬器,則可以經常更改設備的位置。但是在真實的手機上,位置後臺服務在空閒運行時間上限制爲30分鐘,命令的執行時間應該只需要25秒。後臺代理也可以由用戶在手機的設置屏幕上禁用。當代理程序連續崩潰兩次以上時,它們也會停用。另一個限制是inactive background agents are stopped after 4 hours,如果they don't update an apps live tile

我的應用程序更新了實時的磁貼計數器,所以我認爲我的後臺代理應該運行長達14天,而不需要從我的應用程序重新啓動。我已經測試了從昨天到今天的應用程序,並看到後臺代理正在運行(從設置中查找時)。上欄中的小圓點也可見,表示程序正在訪問電話地理位置。但是,有時候這個點會消失,我的背景代理也會因爲很明顯的原因而被殺死。

所以我的問題是:

  • 我怎樣才能無需在真實設備上可靠的測試地理位置與手機和連接調試筆記本電腦旅行?
  • 如何及時測試我提到的超時場景(30分鐘,4小時,14天)?
  • 如何檢查後臺代理的這兩次崩潰?
+0

「我的應用程序更新了實時切片計數器,所以我認爲我的後臺代理應該運行長達14天,而無需從應用程序重新啓動」WP7上的情況屬實。在WP8上,只要該圖塊固定在用戶的主屏幕上(如果未鎖定,那麼適用14天規則),您的後臺代理將不會過期 – 2013-03-22 15:51:42

+0

您能否爲我提供此信息的來源?這意味着如果我不鎖定應用程序的磁貼,所有後臺代理可以在WP8上運行長達14天而不會中斷? – 2013-03-25 11:10:56

+0

不是沒有中斷,我只是在談論到期日期。 「每30分鐘運行25秒」規則仍適用於WP8。另外,我的聲明只是部分正確的:http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202942(v=vs.105).aspx'如果您的應用程序的Tile被固定到手機的「開始」屏幕,每當您的後臺代理調用Update(ShellTileData)更新Tile'時,後臺代理程序計劃的到期時間將自動延長至兩週。因此,您需要明確更新該區塊以推遲到期日期。 – 2013-03-25 11:58:42

回答

0

我想我已經對WP8定義的後臺代理做了一些錯誤的解釋。新的WP8後臺代理位置僅在應用程序運行時處於活動狀態。這意味着應用程序不能用後退按鈕關閉。但是,可以通過windows按鈕或長時間按住按鈕切換到主屏幕,以便從多任務處理中訪問其他應用程序。

關於我的問題:

  • 我怎樣才能無需在真實設備上可靠的測試地理位置與手機和連接調試筆記本電腦旅行?
  • 如何及時測試我提到的超時場景(30分鐘,4小時,14天)?

我還沒有合適的解決方案。您僅限於使用真實設備進行測試以及測試約束條件所需的必要時間。

  • 如何檢查後臺代理的這兩次崩潰?

我不知道如何以編程方式檢查。可能是,用戶可以在手機設置的後臺任務列表中將該崩潰應用視爲阻止的應用。在上面提供的鏈接的幫助下,應該有一種方法可以從此列表中檢測阻止的應用程序。

對於我的項目,我需要一個位置後臺代理,即使鎖定屏幕或沒有打開的應用程序也能運行。因此,我使用PeriodicAgent來每30分鐘要求一次位置,以便將其發送到服務器。但請注意,此後臺代理無法訪問您的應用程序設置或類(請參閱Communication between foreground app and background agent)。

相關問題