2014-01-15 38 views
0

我一直在研究一個基本上是旅行應用程序的應用程序,它使用GPS和位置管理器。問題是,當我開始旅程,並保持在後臺的應用程序,然後一段時間後,它會自動終止,當我再次打開應用程序,它再次從飛濺開始。任何人都可以告訴我發生了什麼以及如何避免它。一段時間後,應用程序被IOS終止

有關背景模式,我曾用「應用程序寄存器,位置更新」

任何幫助,將不勝感激。

+0

您是否分析了內存消耗?如果不是這樣做的第一步。 –

+0

如果您使用CLLocationManager,則當應用程序進入後臺時,您需要確保它正在使用'[locationManager startUpdatingLocation];'來主動更新位置。 – Hannes

+0

你是什麼意思「終止」。你怎麼知道它已經在後臺被終止了? – Spectravideo328

回答

0

我明白了,因爲我也面臨同樣的情況。現在,你需要做的

  1. 使用UIApplication:beginBackgroundTaskWithExpirationHandler:
  2. 如果指定位置的背景模式

  3. 在背景中使用的NSTimer n小於UIApplication:backgroundTimeRemaining,它的作品就好了,萬一n爲在沒有剩餘時間之前,應該再次啓用位置管理器(並禁用),以避免後臺任務被終止。

    Take a look this tutorial

,也看Implementing Long-Running Background Tasks

0

兩件事情:

  1. 如果您註冊了與CLLocationManager顯著的變化更新,您將定期甦醒,即使你的應用程序ISN不會跑。

    [locationManager startMonitoringSignificantLocationChanges];

  2. 嘗試使用kCLLocationAccuracyBestForNavigation的準確性來保持應用程序在後臺不斷喚醒。這已經有一段時間了,但是我記得該應用程序在低精度設置的背景下並沒有保持清醒狀態。

相關問題