簡體   English   中英

iOS:通過位置更新在后台運行應用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM