所以我問了一個關於我的代碼與didEnterRegion有關的問題,但也許我是太具體了,因此我可以請求某人澄清方法調用的區域監視的更通用的術語的順序,特別是當應用程序在後臺。didEnterRegion執行順序?
我的理解是:
- 應用註冊區域調用startMonitoringForRegion:
- 用戶點擊主頁按鈕或鎖定裝置,應用程序進入後臺。
- 設備位置在操作系統級別進行監視,與應用程序分開,操作系統從未啓動應用程序以確認用戶當前的位置。
- 當用戶跨越邊界進入該區域時,操作系統會查找哪個應用程序最初註冊了該區域並啓動該應用程序。
- 該應用程序在後臺啓動,但(didFinishLaunchingWithOptions:未被調用),CLLocationManager委託設置,它的didEnterRegion委託方法被調用。
- 在我的情況下,這會設置立即顯示的UILocalNotification(例如,如果正在使用其他應用程序,則在主屏幕上顯示標題,或者如果電話處於休眠狀態,則顯示在鎖定屏幕上)。
- 用戶通過在鎖定屏幕中滑動或點擊橫幅來操作通知,啓動應用程序並調用appWillEnterForeground/appWillBecomeActive,並在應用程序委託didRecieveLocalNotification:方法被調用後執行。
這是我的理解,這可能是錯誤的,因爲如果應用程序在後臺,我的UILocalNotification永遠不會被觸發。有人能澄清哪些位錯了嗎?