在iOS中,據稱可以使用CLLocationManager
的startMonitoringForRegion:
方法來註冊代理,以響應移動到特定地理區域的設備,即使應用程序未啓動也是如此。從CLLocationManager Class Reference:關於CLLocationManager的iOS應用程序生命週期startMonitoringForRegion
在iOS中,您在位置管理器中註冊的區域會在啓動應用程序之間持續存在。如果在您的iOS應用程序未運行時發生區域交叉,系統會在後臺自動將其喚醒(或重新啓動),以便它可以處理該事件。重新啓動時,先前配置的所有區域都可在您創建的任何位置管理器對象的monitoredRegions屬性中使用。
我假設如果應用程序重新啓動,iOS實際上並沒有把它帶到前臺。我找不到任何好的樣本說明成一個整體的應用,其中startMonitoringForRegion
適合,所以我的問題是:
- 是否有一個從某處特定註冊
startMonitoringForRegion
委託?我猜測它不能在視圖控制器中顯示,如果我們啓動應用程序而不把它帶入前臺。有人可以舉一個例子來說明一下嗎? - 如果我們決定我們做想要進入該地區的應用程序的前景,我們會怎麼做?
- 何時
startMonitoringForRegion
在操作系統中註冊,何時未註冊?用戶是否必須至少一次啓動應用程序(即使它已經被殺死)才能進行初始註冊?如果用戶關閉設備,該怎麼辦?我們的處理程序是否會在設備下次啓動時進行註冊,或者用戶是否必須至少再次啓動應用程序?
什麼類引用意味着應用程序將被重新啓動,並且在applicationDidFinishLaunching:選項中,選項將包含鍵'UIApplicationLaunchOptionsLocationKey',以指示由於檢測到didEnterRegion/didExitRegion監視區域而重新啓動應用程序。如果檢測到密鑰,您需要重新啓動位置管理器和代表,然後才能在代表內進行任何處理。 – nhisyam