gpt4 book ai didi

ios - 如何在我的 iOS 应用程序中每 n 分钟更新一次后台位置?

转载 作者:行者123 更新时间:2023-11-30 13:37:49 25 4
gpt4 key购买 nike

我正在寻找一种在我的 iOS 应用程序中每 n 分钟更新一次后台位置的方法。我使用的是 iOS 4.3,该解决方案应该适用于未越狱的 iPhone。

我尝试/考虑了以下选项:

  • CLLocationManager startUpdatingLocation/startMonitoringSignificantLocationChanges:这会根据配置的属性按预期在后台工作,但似乎不可能强制它每 n 分钟更新一次位置
  • NSTimer:当应用在前台运行时可以工作,但似乎不是为后台任务设计的
  • 本地通知:可以每 n 分钟安排一次本地通知,但无法执行某些代码来获取当前位置(用户无需通过通知启动应用程序)。这种方法似乎也不是一种干净的方法,因为这不是通知应该使用的用途。
  • UIApplication:beginBackgroundTaskWithExpirationHandler:据我了解,当应用程序移至后台时,这应该用于在后台完成一些工作(时间也有限),而不是实现“长-运行”后台进程。

如何实现这些定期后台位置更新?

最佳答案

我在 Apple 开发者论坛的帮助下找到了实现此目的的解决方案:

  • 指定位置背景模式
  • 使用 UIApplication:beginBackgroundTaskWithExpirationHandler: 在后台创建一个 NSTimer
  • n小于UIApplication:backgroundTimeRemaining时,它会正常工作。当n更大时,应在没有剩余时间之前再次启用(和禁用)位置管理器,以避免后台任务被终止。

这是有效的,因为位置是三种允许的后台执行类型之一

注意:我在模拟器中测试它,但它不起作用,因此浪费了一些时间。不过,它在我的手机上运行良好。

关于ios - 如何在我的 iOS 应用程序中每 n 分钟更新一次后台位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35892479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com