В моем приложении я использую ежедневный тихий push для запуска некоторых вычислений внутри моего приложения и на основе результата вычисления. Я запускаю локальное уведомление.iOS: Проблема с молчаливым нажатием на запуск Локальное уведомление
Скажите, например: ежедневная цель.
После того, как тихие уведомления достигли моего приложения, я запускаю метод фона для расчета пользовательских данных и сравниваю, достигли ли его данные цели, и если да, я вызываю локальное уведомление, чтобы пользователь мог открыть приложение и проверить.
Не работает последовательно, иногда я получаю его, а иногда и нет. Когда я отлаживался, я видел, что выполнение приостанавливается между ними, и выполнение возобновляется только в том случае, если пользователь снова открывает приложение или снова запускает молчание. Не уверен, почему фоновое выполнение (расчет) приостанавливается, и если я запускаю push или если я вручную попытаюсь открыть приложение, я вижу, что точка останова возвращается и продолжается с места, где она была приостановлена.
Мне интересно, из-за какого-то временного предела ???
UPDATE:
Я использую UrbanAirshipSDK и у них есть некоторые обработчики переопределены, и я использую метод ниже обрабатывать уведомления. Это написано в appdelegate и вызывается, когда я получаю уведомление, когда приложение находится в фоновом режиме.
/**
* Called when a push notification is received while the app is running in the background
* for applications with the "remote-notification" background mode.
* Overridden by receivedBackgroundNotification:fetchCompletionHandler.
*
* @param notification The notification dictionary.
*/
- (void)receivedBackgroundNotification:(NSDictionary *)notification;
Сначала я проверяю содержание, доступное в полезной нагрузке, и обрабатываю как молчание и выполняю вычисления. Это работает прерывисто, но не последовательно. Я закрываю дату выхода, и я действительно волнуюсь.
Что включает в себя этот расчет? – Wain
Извлечение Coredata и сравнение значений, полученных с пороговыми значениями цели. Размер данных записей очень мал – anoop4real
показать код, который вы используете, у вас должно быть достаточно времени для выборки и локального сравнения – Wain