Приложение зависает при планировании локальных уведомлений в фоновом режиме - PullRequest
1 голос
/ 25 сентября 2011
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    for (int i =0; i<30; i++){
       //add a local notification and schedule it
    }
}

когда приложение переключается в фоновый режим, эти коды через некоторое время останавливают приложение.

Ответы [ 2 ]

1 голос
/ 09 ноября 2011

Там нет документа о UIApplication является потокобезопасным или нет.
После долгого теста я обнаружил, что большинство времени выполнения LocalNotification на фоне работает хорошо. но иногда это просто сбой нашего приложения.

Таким образом, кажется, что все классы с префиксом 'UI' не являются поточно-ориентированными, и вы никогда не должны вызывать методы в другом потоке.

И мое решение уменьшило количество LocalNotification, оно по-прежнему немного замораживает приложение, но мы уверены, что можем принять это небольшое замораживание.

1 голос
/ 25 сентября 2011

По умолчанию обработка приложения останавливается, когда приложение переходит в фоновый режим.Выполнение продолжается с того же оператора, с которого оно ушло, когда приложение возвращается на передний план.Чтобы выполнить код в фоновом режиме, вы должны заключить его в блок beginBackgroundTaskWithExpirationHandler.

Взгляните на раздел Выполнение задачи конечной длины в фоновом режиме в http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html.

HTH,

Акшай

...