我打算开发一个iOS应用程序,该应用程序可用于围栏进入/退出事件。
我需要在应用程序在后台运行或被操作系统调用大约5分钟时运行我的应用程序。就像收到事件监控通知时一样。
我已通过位置更新启用了后台执行,并在需要时运行后台任务以继续在后台执行。
问题是应用程序只能运行180秒左右,并且后台任务会自动终止。我尝试在完成后重新启动后台任务,但没有成功,并且3分钟后应用程序执行停止。
func keepAlive() {
backgroundTask = UIApplication.shared.beginBackgroundTask { [weak self] in
UIApplication.shared.endBackgroundTask(self!.backgroundTask)
self?.backgroundTask = UIBackgroundTaskInvalid
self?.keepAlive()
}
}
是否可以将应用程序运行180秒以上?我正在使用iOS 11和12进行测试。
编辑:
我尝试在后台任务完成时重新调用keepAlive
函数,但是第二次后台执行时间没有增加并且应用终止了。