Xcode - Как работать с уведомлениями, размещенными в NSNotificationCenter, когда приложение находилось в фоновом режиме, как только приложение выходит на передний план

В настоящее время я имею дело со считывателем смарт-карт, подключенным к устройству IOS в качестве внешнего аксессуара. Когда приложение уходит в фоновый режим и остается там в течение нескольких (скажем, 10-15 секунд), iOS отключает ридер, чтобы не разрядить батарею. Это отправляет уведомление NSNotificationCenter что читатель (EAAccessory) был отключен. Когда приложение выходит на передний план, обычно требуется некоторое время, чтобы читатель снова подключился. Я могу справиться с этими уведомлениями, используя следующие методы:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(EAaccessoryConnect) name:EAAccessoryDidConnectNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(EAaccessoryDisConnect) name:EAAccessoryDidDisconnectNotification object:nil];

Проблема в том, что иногда, когда приложение находится в фоновом режиме в течение более длительного времени (более 20 минут), более одного EAAccessoryDidDisconnectNotification очевидно размещен в центре уведомлений, а также EAAccessoryDidConnectNotification, Когда я получу EAAccessoryDidDisconnectNotification Я должен адекватно справиться с этим и дать некоторое время, пока EAAccessoryDidConnectNotification получено. Однако, когда другой EAAccessoryDidDisconnectNotification приходит, это портит мои настройки и пользователь выходит из приложения.

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

0 ответов

Другие вопросы по тегам