2013-10-24 41 views
0

我想了解當調用組件移出其可見/活動生命週期時LocationManager的requestLocationUpdates(使用PendingIntent)如何工作。我知道如何使用removeUpdates取消意圖,並且我已經閱讀了應用程序主線程上所有服務,廣播接收者和活動都已啓動的所有文檔,您可以創建工作線程以免破壞用戶界面經驗等等,但是當涉及諸如requestLocationUpdates之類的調用時,API正在照顧週期性發送意圖,當調用Activity離開其可見的生命週期時,該功能會發生什麼變化,這真的很模糊。例如,如果我從Activity中調用requestLocationUpdates(使用PendingIntent版本),並且沒有我的代碼調用該PendingIntent的removeUpdates,操作系統會停止該Activity,那麼是否停止發送位置更新的PendingIntents?如果活動暫停而又怎麼辦?如果我希望位置更新即使在活動超出其可見的生命週期甚至活動生命週期時仍然存在,我是否應該從在從Activity創建的後臺線程中啓動的服務調用requestLocationUpdates?任何澄清這一點將不勝感激。請求位置更新功能的Android生命週期

回答

0

如果你把Locmanager放在一個服務中(得到點&存儲),它會更好。您應該始終假定用戶喜歡多任務處理,或者至少某些用戶會在使用您的應用程序時接到電話。有了這個工具,你將會嚴重依賴意圖。

+0

感謝您的意見。我會嘗試的。順便說一句,你知道關於requestLocationUpdates的任何好文檔,它解釋了何時以及爲什麼你應該從不同的組件調用它。我很擔心,一旦我開始工作,它會運行一段時間,但因爲我不理解它,所以我可能會遇到一個失敗的情況,只是因爲需要一段時間才能到達該場景。我對此進行了一些研究,似乎大部分答案都是「試試這個,似乎有效」。只是擔心如果我不明白我爲什麼要以某種方式實施它,會使我陷入麻煩。 Thx – user1057118

+0

不幸的是沒有。當我爲健身應用程序開發gps鍛鍊功能時,我學會了這一難題。不要相信服務還活着。當它真正運行在低端內存時,android會試圖殺死它。持久保存您的gps點。 sqlite也許。如果你打算開發一個GPS追蹤應用程序,mytrack是一個很好的參考。 https://code.google.com/p/mytracks/ – hepizoj

+0

好的,謝謝你的信息! – user1057118