我一直在研究一個基本上是旅行應用程序的應用程序,它使用GPS和位置管理器。問題是,當我開始旅程,並保持在後臺的應用程序,然後一段時間後,它會自動終止,當我再次打開應用程序,它再次從飛濺開始。任何人都可以告訴我發生了什麼以及如何避免它。一段時間後,應用程序被IOS終止
有關背景模式,我曾用「應用程序寄存器,位置更新」
任何幫助,將不勝感激。
我一直在研究一個基本上是旅行應用程序的應用程序,它使用GPS和位置管理器。問題是,當我開始旅程,並保持在後臺的應用程序,然後一段時間後,它會自動終止,當我再次打開應用程序,它再次從飛濺開始。任何人都可以告訴我發生了什麼以及如何避免它。一段時間後,應用程序被IOS終止
有關背景模式,我曾用「應用程序寄存器,位置更新」
任何幫助,將不勝感激。
我明白了,因爲我也面臨同樣的情況。現在,你需要做的
UIApplication:beginBackgroundTaskWithExpirationHandler:
如果指定位置的背景模式
NSTimer
n小於UIApplication:backgroundTimeRemaining
,它的作品就好了,萬一n爲在沒有剩餘時間之前,應該再次啓用位置管理器(並禁用),以避免後臺任務被終止。 兩件事情:
如果您註冊了與CLLocationManager顯著的變化更新,您將定期甦醒,即使你的應用程序ISN不會跑。
[locationManager startMonitoringSignificantLocationChanges];
嘗試使用kCLLocationAccuracyBestForNavigation的準確性來保持應用程序在後臺不斷喚醒。這已經有一段時間了,但是我記得該應用程序在低精度設置的背景下並沒有保持清醒狀態。
您是否分析了內存消耗?如果不是這樣做的第一步。 –
如果您使用CLLocationManager,則當應用程序進入後臺時,您需要確保它正在使用'[locationManager startUpdatingLocation];'來主動更新位置。 – Hannes
你是什麼意思「終止」。你怎麼知道它已經在後臺被終止了? – Spectravideo328