2014-06-05 4 views
-1

Я использую устройство Beacon для тестирования. Сценарий выглядит следующим образом. Я посылаю локальные уведомления, когда приемник входит в местоположение, основанное на широте диапазона &, которое я установил вручную. Это отлично работает, и я очищаю это уведомление от didFinishLaunchingWithOptions. Когда я вхожу в следующий ближайший регион, я получаю уведомление и при нажатии на него я могу представить представление. Но когда я выхожу из приложения, местные уведомления не очищаются. В чем может быть проблема?Локальное уведомление не очищается в iOS

Я использую два разных метода для двух разных регионов. первый один

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

уведомление на указанный выше способ является получение очищается в

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

второй способ заключается в следующем: это для 2-го региона

- (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

я хочу знать, почему уведомления не получают очищается, когда я использую cancelAllLocalNotifications в методе applicationWillResignActive. У вас есть представление о том, почему это не называется? – 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

Я хочу знать, почему уведомления не очищаются, когда я использую cancelAllLocalNotifications в методе applicationWillResignActive. У вас есть представление о том, почему это не называется? – Chan

Смежные вопросы