2013-03-02 18 views
2

在已註冊爲使用位置服務在後臺運行的應用程序的上下文中,將導致backgroundTimeRemaining被重置爲其最大值的事件,並且該重置將延長允許完成正在進行的持續時間任務?什麼事件會重置backgroundTimeRemaining?

回答

0

你想要做什麼?它看起來像你想run continuously in the background

或者,您可能只想在位置更新時運行一點代碼?然後,不要「欺騙系統」,並在應用程序被通知位置更改時運行該代碼(並使用beginBackgroundTaskWithExpirationHandler:運行它)。

+0

正確。我有興趣在後臺連續運行。我閱讀了你提到的那些帖子,並促使我問這個問題,以更好地理解我的選擇:究竟什麼會或不會觸發重置該backgroundTimeRemaining。它是對startUpdatingLocation的調用嗎?它是否打電話給didUpdateLocations?是否還有其他事件也會重置backgroundTimeRemaining?不知何故,我沒有看到明確說明的地方,並且想知道在我使用符合我的需求的代碼方法之前情況如何。謝謝。 – Lolo 2013-03-02 14:52:53

+1

嗯,我不認爲你可以並會得到正確的答案,因爲Apple顯然不**要告訴人們什麼觸發了主要的'backgroundTimeRemaining'獎金。我很確定這個iOS版本也會改變。你的選擇是獲得主要loc更改的通知,使用loc在後臺運行,或者使用hack在後臺連續運行。 – Rikkles 2013-03-02 17:10:15

+0

接受你的回答是爲了說明蘋果可能沒有有意地記錄這個問題的答案。我將在單獨的答案中添加我在實驗中觀察到的內容。 – Lolo 2013-03-05 06:52:38

1

基於我在模擬器和硬件上運行的實驗,以及我在問題中定義的上下文,每當從位置庫進行內部調用到didUpdateLocations(或IOS更新位置)時,就會重置backgroundTimeRemaining(IOS < 6)。

這就是所有用於在後臺連續運行的方法。

相關問題