2013-10-22 35 views
5

調用didEnterRegion我一直在做一些閱讀有關CLBeaconRegion和我已經安裝了一些iBeacons成功,把它觸發位置更新,即使該應用程序在後臺運行。CLBeaconRegion不是從終端

但是,根據我已閱讀並從CLRegion繼承的內容,我瞭解在應用程序終止後應該有可能點擊locationManager:didEnterRegion:

我設置我的CLBeaconRegion這樣的:

beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:SERVICE_UUID] 
                 major:0 
                 minor:0 
                identifier:BEACON_ID]; 
[beaconRegion setNotifyOnEntry:YES]; 
[beaconRegion setNotifyOnExit:YES]; 
[beaconRegion setNotifyEntryStateOnDisplay:YES]; 

但我無法從終止觸發CLLocationManager的代表。我已經離開該地區(通過通知確認),前往遠離燈塔,等待30秒,然後前往回標,但同時終止它不會觸發委託(工作在背景和前景巨大,而)。

應該終止這項工作?我錯過了什麼嗎?任何幫助都會很棒。

回答

4

我相信,當你在後臺運行或不運行時,它會調用locationManager:didDetermineState:forRegion:而不是locationManager:didEnterRegion :,然後纔會將notifyEntryStateOnDisplay設置爲TRUE。

+0

在此背景下,它仍然調用'的LocationManager:didEnterRegion:',如'的LocationManager:didDetermineState:forRegion:',不過,從我的測試中,它不會調用無論是從終止狀態(用戶刷卡應用程序)。我的'notifyEntryStateOnDisplay'也設置爲'YES' /'TRUE'。 – RileyE

1

編輯:下面的是不再爲7.1如此。您仍可以收到通知,即使應用程序已關閉

遭到側擊的應用程序的行爲客場應用切換器目前已經影響你的iOS下描述7.

誰的用戶從刪除您的應用程序切換臺已決定不允許您的應用在後臺運行。因此,區域監控不會重新打開您的應用程序。

退房「什麼與多任務處理的新功能」,從2013 WWDC會議以獲取更多信息。

-1

呀,

Same behaviour is being noticed .Sometimes even while calling setNotifyEntryStateOnDisplay, didEnterRegion not called even when in foreground.