2011-08-14 15 views
2

我現在正在跟蹤用戶位置的應用程序。 即使它不在任務列表中,我也希望此應用程序能夠運行(雙擊home按鈕不會顯示它)。 與谷歌緯度一樣,該應用程序未在後臺運行。 我認爲這篇文檔是關於當用戶按下主頁按鈕時運行應用程序:http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html在像google緯度一樣的背景中運行應用程序

但是如果用戶通過雙擊主頁按鈕關閉此應用程序會怎麼樣?我知道Google緯度等應用程序仍在後臺運行。所以我該怎麼做?

回答

2

應用程序能夠再次運行在後臺如果它在上次啓動時註冊了重大位置更改。如果谷歌緯度啓動應用程序恢復,比他們用這個流程:

  1. 應用程序啓動
  2. 檢查設備能夠提供顯著位置變更通知(蜂窩網絡數據的設備可以處理這種類型的通知):significantLocationChangeMonitoringAvailable
  3. 註冊通知:startMonitoringSignificantLocationChanges
  4. 退出應用程序,只要您的設備將離開一個手機塔到另一個,系統會發送通知,您的應用程序將被喚醒。

有一個問題,沒有正常的方式來取消註冊此通知。我認爲只有通過向用戶提供停止監視的選項。我注意到了這一點,通過狀態欄右上角的箭頭,這意味着某人正在使用位置服務。

0

我可以向您保證,谷歌縱橫僅在用戶的位置正在運行(並可見)或其作爲後臺進程運行時(多任務可用時)更新用戶的位置。

谷歌的緯度正在使用location後臺服務,該服務使用手機信號塔來確定應用程序在後臺運行時的位置(如鏈接的文檔中所述)。如果Latitude應用不是正在運行的進程,則無法更新該位置。

+0

緯度實際上更新它的位置,即使它沒有運行並且它不在多任務托盤中。我可以向你保證它確實如此。 –

相關問題