且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-12-26 13:10:45

我在 Apple 开发者论坛的帮助下找到了一个解决方案:

I found a solution to implement this with the help of the Apple Developer Forums:

  • 指定位置背景模式
  • 使用 UIApplication:beginBackgroundTaskWithExpirationHandler:
  • 在后台创建一个 NSTimer
  • nUIApplication:backgroundTimeRemaining 时,它会正常工作.当n更大时,location manager应该在没有剩余时间之前再次启用(和禁用)以避免后台任务被杀死.
  • Specify location background mode
  • Create an NSTimer in the background with UIApplication:beginBackgroundTaskWithExpirationHandler:
  • When n is smaller than UIApplication:backgroundTimeRemaining it will work just fine. When n is larger, the location manager should be enabled (and disabled) again before there is no time remaining to avoid the background task being killed.

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

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