【发布时间】:2010-08-04 22:03:15
【问题描述】:
我正在尝试制作一个每 10 分钟记录一次准确位置的应用程序。
这样做的问题是,当运行是最佳模式时,电池会很快耗尽。
我想要一个定时器来关闭定位服务,didUpdateToLocation 获得了一个好的位置,关闭定位服务然后再次等待定时器。
我已经尝试了一百万种方法,但我的 NSTimer 在进入后台模式时总是被冻结。
有趣的是,didUpdateFromLocation 可以关闭定位服务,如果您使用显着ChangeUpdate,您可以在用户通过三角测量边界时使用 didUpdateToLocation 重新打开定位服务,并将位置记录到 coredata-
所以理论上唯一阻止我让这个东西运行的是一个线程中的 NSTimer,它永远不会被冻结。
我读过一些文件说你可以在后台做一些简单的事情,除了 VOIP、位置、音频。有没有人有过让线程运行但不会被冻结的经验?我知道每个人都认为这是不可能的——根据我的研究这是可能的,但我就是想不通。
非常感谢基于在 VOIP、音频、位置之外的后台运行线程的任何经验的建议
谢谢大家,戴夫-
【问题讨论】:
标签: iphone multithreading background location nstimer