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, когда приложение находилось в фоновом режиме, сразу после того, как приложение выходит на передний план, и удалить несколько уведомлений одного и того же типа - оставив только одно уведомление в своем роде. Или есть другое решение, которое вы предлагаете мне реализовать, чтобы справиться с этим?