UIApplication.didBecomeActiveNotification неожиданно вызывается один раз, когда пользователь проводит пальцем вниз по экрану Центра уведомлений на устройстве iOS - PullRequest
0 голосов
/ 20 мая 2019

, как говорится в названии, я обнаружил это неожиданное поведение в iOS 11 и 12.
Кто-нибудь знает, почему вызывается это событие и, , что более важно , есть ли обходной путь, чтобы система не запустила это событие UIApplication.didBecomeActiveNotification?

Вот шаги, чтобы воспроизвести это поведение:

  1. Запустите приложение.
  2. Доступ к экрану Центра уведомлений на iPhone или iPad (проведением вниз от самой верхней части экрана устройства).
  3. В тот момент, когда экран Центра уведомлений попадает в нижнюю часть экрана устройства , запускается событие UIApplication.didBecomeActiveNotification.

Вы можете просто добавить журнал в файл AppDelegate.swift для тестирования, например:

func applicationDidBecomeActive(_ application: UIApplication) {
        print("applicationDidBecomeActive")
}

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

В моем приложении я пытаюсь управлять состоянием видеоплеера, когда приложение переходит в фоновый режим (или полуфоновый). Неожиданное событие .didBecomeActiveNotification раздражает рабочий процесс управления статусом.

Я искал на Открытом радаре и тут и гуглил некоторое время, и такая похожая тема не появилась.

Любое предложение будет оценено. Спасибо.

1 Ответ

0 голосов
/ 20 мая 2019

func applicationWillResignActive (_ application: UIApplication) можно использовать вместо .didBecomeActiveNotification, чтобы получать уведомления, когда приложение переходит в фоновые или полуфоновые состояния.

Доступ к экрану Центра уведомлений на iPhone или iPad (проведя пальцем вниз от самой верхней части экрана устройства) вызовет applicationWillResignActive и не будет запущен, если мы проведем вверх по центру уведомлений.

...