2014-06-05 69 views
-1

我正在使用Beacon設備進行測試。情景如下。 我在接收器輸入基於我手動設置的緯度&經度範圍的位置時拋出本地通知。這工作正常,我清理didFinishLaunchingWithOptions這個通知。當我進入下一個最接近的區域時,我收到通知並單擊它可以呈現視圖。但是當我走出應用程序時,本地通知不會被清除。可能是什麼問題?本地通知未在iOS中清除

我使用兩個不同區域的兩個不同的方法。 第一一個是

-(void) didEnterLocation:(SLMLocation*)location 
{ 
// throwing a local notification 
} 

上述方法的通報

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 
} 

得到清除了第二方法如下:這是第二區域

- (void) didEnterNewClosestRegion :(SLMBLERegion*) region 
{ 
// throwing local notifications here & notifications are visible 
} 

現在在第二方法只有我無法清除本地通知。非常感謝您的幫助。

回答

1

這是因爲didFinishLaunchingWithOptions方法在應用程序生命週期只叫一個,有可能它已經在後臺運行,因此通知將不會被清除。我建議您將取消代碼移至applicationDidBecomeActive

cancelAllLocalNotifications,取消所有預定本地通知的傳遞,它不會清除從鎖屏或通知中心已經呈現通知。

https://developer.apple.com/library/ios/documentation/uikit/reference/UIApplication_Class/Reference/Reference.html#//apple_ref/occ/instm/UIApplication/cancelAllLocalNotifications

+0

我想知道爲什麼通知沒有得到清除,當我在applicationWillResignActive方法使用cancelAllLocalNotifications。你有什麼想法,爲什麼這不被稱爲? – Chan

+0

你想清除預定的通知嗎?或提出的?你可以更具體和詳細。 – Zee

+0

NO。我根本不使用預定的通知。只是提出的一個,我扔了。 – Chan

1

嘗試這可能有助於全..

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 
    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 

} 

感謝

+0

我想知道爲什麼在applicationWillResignActive方法中使用cancelAllLocalNotifications時通知沒有被清除。你有什麼想法,爲什麼這不被稱爲? – Chan