2015-01-09 2 views
0

Я использую - (void)applicationDidEnterBackground:(UIApplication *)application в моем файле AppDelegate.m и я отображая каждый день уведомления, как это:Objective-C местных уведомлений стреляющих два раза

- (void)applicationDidEnterBackground:(UIApplication *)application 

    { 

     UILocalNotification *notification = [[UILocalNotification alloc] init]; 
     UIApplication *myapp = [UIApplication sharedApplication]; 

     if (hour > 8 && hour < 10) 
     { 
        notification.fireDate = [components date]; 
        notification.repeatInterval = 0; 
        notification.soundName = @""; 
        notification.alertBody = @"This is an notification!"; 
        [myapp scheduleLocalNotification:notification]; 
     } 
    } 

Все отлично, за исключением работает, когда уведомление обжигает и приложение закрывается после того, как пользователь открывает приложение, а затем закрывает его, уведомление снова запустится. Есть ли какой-то метод, отличный от - (void)applicationDidEnterBackground:(UIApplication *)application (предупреждение должно отображаться даже тогда, когда приложение полностью закрыто [убито с помощью диспетчера задач]), или мне нужно решить его с помощью некоторого кода.

Спасибо!

+0

Кажется, вы никогда не удаляете локальные уведомления, поэтому, если вы намереваетесь стрелять один раз в день, и пользователь дважды сокращает ваше приложение за один день, вы в конечном итоге планируете два местных уведомления. Взгляните на [cancelLocalNotification: and cancelAllLocalNotifications] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/#//apple_ref/doc/uid/TP40006728-CH3-SW86) –

+0

когда вы планируете уведомление, оно остается запланированным, пока вы его не отмените (или оно истечет). Если вы планируете 5, вы получите 5 уведомлений. –

ответ

0

Когда ваше приложение полностью закрыто, вы больше ничего не можете сделать. Метод, который вы используете, правильный, когда приложение входит в фоновый режим. applicationWillTerminate вызывается непосредственно перед тем, как приложение будет завершено. После этого, вот и все. Больше не надо.

+0

Но у меня есть некоторые приложения на моем телефоне, которые полностью закрыты (дважды нажмите на кнопку «домой», проведите по экрану вверх), и они все равно отправляют мне уведомления, такие как приложение погоды Yahoo или некоторые игры, как это возможно? – user4191892

+0

Эти функции называются Push-уведомлениями. Они отправляются на телефон. Когда они открываются, они запускают свое приложение. https://developer.apple.com/notifications/ – Tander

+0

Возможно ли сделать таймер, который запускается каждые 30 минут для отображения локального уведомления? – user4191892

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