iOS Local Notofications не срабатывают, пока приложение находится в фоновом режиме - PullRequest
0 голосов
/ 12 августа 2011

Когда мое приложение iOS закрывается, оно регистрирует серию локальных уведомлений, которые обновляют номер значка в определенное время. Локальные уведомления не вызывают всплывающее окно, они просто обновляют значок. На моем старом iPod touch, который не поддерживает многозадачность, это работает отлично. Однако на устройствах с поддержкой многозадачности возникает очень странная ошибка: когда я «выходил» из приложения (то есть оно все еще работает в фоновом режиме, но я делаю что-то еще), локальные уведомления не запускаются. Есть ли причина, по которой локальные уведомления не будут срабатывать, когда приложение находится в фоновом режиме?

Код для создания локальных уведомлений запускается в цикле (я создаю их несколько):

    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    localNotification.applicationIconBadgeNumber = totalCount; // a number generated earlier in the code
    localNotification.timeZone = [NSTimeZone defaultTimeZone];
    localNotification.fireDate = endDate; // a date generated earlier
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    [localNotification release];

А также я создал следующую функцию в моем делегате приложения, которая сообщает мне, сколько уведомлений настроено до того, как приложение переходит в фоновый режим:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    NSLog(@"# Notifications: %d", [[[UIApplication sharedApplication] scheduledLocalNotifications] count]);
}

Приложение постоянно сообщает мне, что существует 64 уведомления (число, которое необходимо настроить), когда оно входит в фон.

Ответы [ 3 ]

1 голос
/ 05 июня 2013

Проверьте следующее из документации разработчиков Apple: «Каждое приложение на устройстве ограничено 64 запланированными локальными уведомлениями. Система отбрасывает запланированные уведомления сверх этого предела, оставляя только 64 уведомления, которые сработают быстрее всего. Повторяющиеся уведомления рассматриваются как одно уведомление.»

Может быть, проблема связана с количеством запланированных уведомлений?

Вы можете найти дополнительную информацию в http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/WhatAreRemoteNotif.html

0 голосов
/ 15 июля 2016

Swift Версия:

func applicationDidEnterBackground(application: UIApplication) {
       let notification = UILocalNotification()
        notification.alertBody = "App has been entered in background" 
        notification.alertAction = "open" 
        notification.fireDate = NSDate() 
        notification.soundName = UILocalNotificationDefaultSoundName 
        UIApplication.sharedApplication().scheduleLocalNotification(notification)
    }
0 голосов
/ 12 августа 2011

Ну, @Jason, вам нужно установить alertBody из local notification по крайней мере, чтобы показать представление оповещения, вот и все, что нужно сделать.

Также, если вы не хотите показывать опцию просмотра взатем в окне предупреждения установите атрибут hasAction на NO.

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