2017-07-17 45 views
0

我想每隔30秒將背景上傳到1分鐘。可能嗎? 我發現我可以設置UIApplicationBackgroundFetchIntervalMinimum。但我環顧這個常數,告訴設備每30分鐘取一次。任何方式來做到這一點?謝謝。定期獲取背景

回答

0

我不知道你的上傳位置每30秒的確切目的。不建議這樣做。我認爲你可以去MonitoringSignificationChangesCoreLocation框架。只要地點發生重大變化,它就會給你更新。它有助於在保存電池

啓動基於以下方法顯著位置的變化更新的一代:

func startMonitoringSignificantLocationChanges() 

此方法啓動位置事件的異步傳遞,返回你打電話後不久。定位事件將傳遞給您的代理人的locationManager(_:didUpdateLocations:)方法。第一個要交付的事件通常是最近緩存的位置事件(如果有的話),但在某些情況下可能是更新的事件。獲取當前的位置修正可能需要幾秒鐘的時間,因此請務必在委託方法中檢查位置事件上的時間戳。

富勒更多信息:Apple Docs

+0

我已經試過了。如果用戶不移動,則不會調用此委託方法。我甚至嘗試使用無聲通知來告訴應用程序更新。發送一段時間後,APNs服務器將停止發送約20分鐘。我也試過計時器。 –

+0

@CarlHung你應該*不*甚至做到這一點,https://stackoverflow.com/questions/41021733/is-using-core-location-for-performing-functionality-in-the-background-appropriat –

+0

發送靜默推送通知通過APNS交付的次數太多不能保證。如果太多的請求會被忽略 –

0

你的做法有多個問題。大多數應用程序不允許像您想要的那樣在後臺連續運行。大約3分鐘的背景時間,然後你的應用程序被暫停。導航應用程序是一個例外。如果您的應用程序是導航應用程序,您可以在後臺連續運行。

每30秒輪詢一次GPS也是一個壞主意,除非你是一個導航應用程序。你會很快耗盡用戶的電池。

同樣,每30秒鐘上傳一次用戶的位置,手機上的蜂窩/ WiFi無線廣播幾乎不間斷地上電,這將很快耗盡用戶的電池電量。