iOS UILocalNotification не отображается, пока приложение в фоновом режиме - PullRequest
3 голосов
/ 11 июня 2011

ИСПРАВЛЕНО - Ладно, нашел, что это было, был сбит ошибочный [[UIApplication sharedApplication] cancelAllLocalNotifications];, когда я этого не ожидал.

Ну, вот твоя проблема.

Спасибо за помощь всем, извините за то, что это просто синдром тупого кодера.

Я выстроил свое локальное уведомление примерно так:

- (void)scheduleNotification {
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
    Class cls = NSClassFromString(@"UILocalNotification");
    if (cls != nil) {
        UILocalNotification *notif = [[cls alloc] init];
        NSLog(@"%@", [NSDate date]);
        notif.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];

        notif.alertBody = NSLocalizedString(@"Hello.", nil);

        [[UIApplication sharedApplication] scheduleLocalNotification:notif];
        NSLog(@"Notification scheduled at %@", notif.fireDate);
        [notif release];
    }
}

Как и ожидалось, мойЖурнал отладки выводит правильную fireDate через 10 секунд в будущем.Если я не покидаю свое приложение, я получаю успешный application:didReceiveLocalNotification: обратный вызов.

Здесь происходит сбой, если я нажимаю кнопку, чтобы запланировать это уведомление, и нажимаю кнопку домой, чтобы поместить его в фоновом режиме.Если я сделаю это, уведомление никогда не сработает, и я никогда не получу представление предупреждения из ОС.

Я что-то упустил здесь?Я посмотрел здесь и вниз, на документы Apple, и чувствую, что упустил что-то очевидное.

Любая помощь будет принята с благодарностью.Благодаря.

Ответы [ 3 ]

1 голос
/ 11 июня 2011

См. Пример в документации Apple: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW1

Может быть, проблема заключается в том, что не установка timeZone на [NSTimeZone defaultTimeZone] вызывает проблему? Предполагается GMT, если timeZone не установлен (по умолчанию ноль).

0 голосов
/ 11 августа 2012

Хорошо, нашел, что это было, был странный [[UIApplication sharedApplication] cancelAllLocalNotifications];отправляется при входе в фон.

0 голосов
/ 11 июня 2011

Вы пробовали обернуть код в фоновое задание?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...