繁体   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