Я использую - (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
(предупреждение должно отображаться даже тогда, когда приложение полностью закрыто [убито с помощью диспетчера задач]), или мне нужно решить его с помощью некоторого кода.
Спасибо!
Кажется, вы никогда не удаляете локальные уведомления, поэтому, если вы намереваетесь стрелять один раз в день, и пользователь дважды сокращает ваше приложение за один день, вы в конечном итоге планируете два местных уведомления. Взгляните на [cancelLocalNotification: and cancelAllLocalNotifications] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/#//apple_ref/doc/uid/TP40006728-CH3-SW86) –
когда вы планируете уведомление, оно остается запланированным, пока вы его не отмените (или оно истечет). Если вы планируете 5, вы получите 5 уведомлений. –