定期执行iPhone后台任务

定期执行iPhone后台任务,iphone,process,background,gps,multitasking,Iphone,Process,Background,Gps,Multitasking,我有并发布了我想要定期收集GPS数据的地方,比如说每5分钟一次。当应用程序运行时,我可以做到这一点。然而,我想知道是否有一种标准的方法可以使用iPhone的“多任务处理”来做到这一点。我可以使用后台进程收集数据,使用不断更新的模型和重大更改,但这些数据要么太耗电量,要么不准确 我正在查看NSLocalNotification,但我不确定是否在定期检查位置时将应用程序保持在后台状态,我认为这只是启动应用程序的选项 提前感谢。无法定期执行GPS采集(例如每5分钟一次) 来自Apple文档: 节约电池

我有并发布了我想要定期收集GPS数据的地方,比如说每5分钟一次。当应用程序运行时,我可以做到这一点。然而,我想知道是否有一种标准的方法可以使用iPhone的“多任务处理”来做到这一点。我可以使用后台进程收集数据,使用不断更新的模型和重大更改,但这些数据要么太耗电量,要么不准确

我正在查看NSLocalNotification,但我不确定是否在定期检查位置时将应用程序保持在后台状态,我认为这只是启动应用程序的选项


提前感谢。

无法定期执行GPS采集(例如每5分钟一次)

来自Apple文档:

节约电池电量的小贴士 使用基于iOS的设备的无线电接收和传输数据比设备上的任何其他操作都需要更大的功率。因为核心位置依赖于这些无线电来确定用户的位置,所以您应该在应用程序中明智地使用位置服务。大多数应用程序不需要一直运行位置服务,因此关闭这些服务是省电的最简单方法

  • 在不使用位置服务时关闭它们。这似乎很明显,但值得重复。除了提供转弯方向的导航应用程序外,大多数应用程序不需要一直打开位置服务。打开位置服务的时间刚好足以获得位置修复,然后将其关闭。除非用户在移动车辆中,否则当前位置的变化不应频繁到成为问题的程度。如果需要,您随时可以稍后再次启动定位服务
  • 尽可能使用重要更改位置服务,而不是标准位置服务。重要更改位置服务可显著节省电量,同时仍允许您保持位置服务运行。对于需要跟踪用户位置变化但不需要标准位置服务提供的更高精度的应用程序,强烈建议使用此方法
  • 使用较低的分辨率值以获得所需的精度,除非这样做会损害您的应用。要求高于您需要的精度会导致Core Location为其他硬件通电,并为您不使用的精度浪费电源。除非应用程序确实需要知道用户在几米范围内的位置,否则不要将值KCLLOCATIONACURACYBEST或KCLLOCATIONACURACYNEARESTENMERS放入desiredAccuracy属性中。请记住,指定KCllocationAccuracyThreeKymbers的值不会阻止定位服务返回更好的数据。大多数情况下,核心位置可以使用Wi-FI和蜂窝信号以百米左右的精度返回位置数据
  • 如果准确度在一段时间内没有提高,请关闭位置事件。如果应用程序接收的事件没有达到所需的准确度,则应查看您确实接收到的事件的准确度,并查看其是否在提高或保持不变。如果准确度没有提高,可能是因为目前根本无法获得所需的准确度。关闭位置服务并稍后重试可防止应用程序浪费电源

嗨,谢谢你的链接。我几乎认为情况就是这样,这确实限制了我要么使用更多电池,要么使用不太准确的信息。最有可能的情况是,我会选择一个组合,在那里我可以使用一些目标点,然后在一段时间内降低精度。这可能有助于使用大量电池。Latitudue应用程序可以随心所欲。你可以看到它的开发者博客:根据,当应用程序在后台时,你可以通过GPS跟踪你的位置。