2011-10-02 107 views
0

我需要知道用戶何時接近某個位置。iPhone核心位置startMonitoringSignificantLocationChanges

在iPhone 4上,我使用的是startMonitoringForRegion:desiredAccuracy:,但這在3GS(我想支持)上不支持,所以在這種情況下,我不得不使用startMonitoringSignificantLocationChanges

事情是,startMonitoringSignificantLocationChanges會導致代理被調用(並且應用程序將被啓動到後臺,如果不是),那麼即使它與我的需求完全無關,也會對每個重要的位置更改進行調用。

我很容易檢測委託電話是否與我有關,但我想知道另一件事情:如果我啓動到後臺,然後檢測到電話是而不是相關,應該我在後檯安靜地呆着,還是應該以某種方式中止應用程序,直到下一次將自己從後臺移除?

回答

1

如果您不需要對位置更新進行任何操作,只需從方法調用返回,並保持在後臺閒置。不要試圖放棄應用程序,這會在下一次您的位置發生重大變化時導致應用程序不必要的重新加載(使用電池)。如果當它確定需要內存空間時,操作系統將終止後臺應用程序。

+0

謝謝。順便說一下,我發現即使我的委託在每次重大位置更改時都被調用,但是應用程序本身並不顯示在後臺應用程序列表中(雙擊主頁按鈕),前提是它沒有出現。我很驚訝。 –

0

我會認爲,在您的AppDelegate回調中,如果您確定不需要調用,那麼您只需返回;完成並完成。位置更改的回調將被調用,但除非您決定停止監控,否則位置監控將繼續。該應用程序沒有被帶入前臺,只是從AppDelegate內部調用方法。