我打算开发一个适用于地理围栏进入/退出事件的 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
在后台任务完成时调用功能,但是第二次后台执行时间没有增加并且应用程序终止。