簡體   English   中英

在多任務iPhone應用程序的后台運行NSTimer以打開/關閉定位服務

[英]running an NSTimer in the background of a multitasking iPhone app to turn location service on/off

我正在嘗試制作一個每10分鍾記錄一次准確位置的應用程序。

問題在於,當以最佳模式運行時,電池會很快耗盡。

我想要一個打開定位服務的計時器,didUpdateToLocation獲取了一個好的位置,打開了定位服務,然后再次等待計時器。

我已經嘗試了上百萬種東西,但是當我進入后台模式時,我的NSTimer總是會凍結。

有趣的是,didUpdateFromLocation可以關閉位置服務,如果您使用了ificantChangeUpdate,則可以在用戶通過三角剖分邊界並將位置記錄到coredata時使用didUpdateToLocation重新打開位置服務。

因此,從理論上講,阻止我運行該程序的唯一方法是一個永遠不會凍結的線程中的NSTimer。

我讀過一些文件,說您可以在VOIP,位置和音頻之外的背景中做一些簡單的事情。 有沒有人有任何使運行的線程不會凍結的經驗? 我知道每個人都認為這是不可能的-從我的研究中有可能,但我只是想不通。

根據任何使線程在VOIP,音頻,位置以外的背景中運行的經驗的建議,將不勝感激

謝謝大家,戴夫

這個問題的答案有一個替代性的解決方法,您可以在其中重新使用applicationDidEnterBackground事件來循環返回自身,每次重新啟動線程時您都可以進行一些工作

iPhone-輪詢事件背景

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM