[英]iOS: Run app in background with location updates
我打算開發一個可處理地理圍欄進入/退出事件的iOS應用。
當應用程序在后台運行或被OS調用約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
函數,但是第二次后台執行時間沒有增加並且應用終止了。
已經有一種官方的方法可以做到這一點:只需使用Always-Authorized即可 。 有了它,您可以在特殊時期檢查用戶位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.