【问题标题】:running an NSTimer in the background of a multitasking iPhone app to turn location service on/off在多任务 iPhone 应用程序的后台运行 NSTimer 以打开/关闭位置服务
【发布时间】:2010-08-04 22:03:15
【问题描述】:

我正在尝试制作一个每 10 分钟记录一次准确位置的应用程序。

这样做的问题是,当运行是最佳模式时,电池会很快耗尽。

我想要一个定时器来关闭定位服务,didUpdateToLocation 获得了一个好的位置,关闭定位服务然后再次等待定时器。

我已经尝试了一百万种方法,但我的 NSTimer 在进入后台模式时总是被冻结。

有趣的是,didUpdateFromLocation 可以关闭定位服务,如果您使用显着ChangeUpdate,您可以在用户通过三角测量边界时使用 didUpdateToLocation 重新打开定位服务,并将位置记录到 coredata-

所以理论上唯一阻止我让这个东西运行的是一个线程中的 NSTimer,它永远不会被冻结。

我读过一些文件说你可以在后台做一些简单的事情,除了 VOIP、位置、音频。有没有人有过让线程运行但不会被冻结的经验?我知道每个人都认为这是不可能的——根据我的研究这是可能的,但我就是想不通。

非常感谢基于在 VOIP、音频、位置之外的后台运行线程的任何经验的建议

谢谢大家,戴夫-

【问题讨论】:

    标签: iphone multithreading background location nstimer


    【解决方案1】:

    this question 的答案有一个替代技巧,您可以在其中重复使用 applicationDidEnterBackground 事件循环回自身,每次重新启动一个可以做一些工作的线程

    iPhone - Backgrounding to poll for events

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多