Что на самом деле делает завершениеHandler в userNotificationCenter? - PullRequest
0 голосов
/ 31 мая 2019

Я в настоящее время внедряю push-уведомления, и мне было интересно, что на самом деле делает completionHandler in userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:?

Документация Apple гласит:

Блок для выполнения, когда вы закончили обработку ответа пользователя. Вы должны выполнить этот блок в какой-то момент после обработки ответа пользователя, чтобы система знала, что вы сделали. Блок не имеет возвращаемого значения или параметров.

Но это очень загадочно и на самом деле не отвечает на мой вопрос. Это убивает приложение, потому что я "закончил обрабатывать действие"? Разве не убивает приложение? Что делать, если у меня есть несколько асинхронных вызовов (например, ответ на сообщение), и я вызываю завершениеHandler? На данный момент, кажется, работает, но что, если соединение медленное?

1 Ответ

2 голосов
/ 31 мая 2019

Если ваше приложение находится в фоновом режиме, когда оно получает push-уведомление, вызов обработчика указывает iOS, что вашему приложению больше не нужно назначать циклы ЦП для обработки, пока вы не получите еще одно push-уведомление или пользователь не взаимодействует с вашим приложением вкаким-то образом.

Если ваше приложение находится на переднем плане и активно, оно не должно иметь никакого эффекта.

В любом случае, вы должны быть "хорошим гражданином iOS" и выполнять строгий минимум только тогда, когдаполучение push-уведомления.Обратите внимание, что при необходимости доступны некоторые службы фоновой загрузки, которые можно активировать при получении push-уведомления.

И, как говорится в тексте, вы ДОЛЖНЫ вызывать этот обработчик завершения.

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