iPhone X вызывает поддельное applicationWillResignActive, а вскоре после этого — applicationDidBecomeActive.

Я вижу, что мое приложение получает вызов applicationWillResignActive, а затем почти сразу applicationDidBecomeActive без видимой причины, только на устройствах iPhone X-семейства. Задержка между этими двумя событиями составляет от 0,05 до 1-2 сек. Я предполагаю, что это может быть из-за легких касаний в нижней части экрана, которые сначала запускают переключатель задач, а затем, когда касание заканчивается без перетаскивания, переключатель задач отменяет свое действие.

Глядя на это сообщение, похоже, что это может объяснить причину дополнительные уведомления там же.

Любые идеи о том, почему именно это происходит и как надежно отфильтровать это?

В моем случае приложение работает в Unity, а Unity заморозит управляемый код на 1 кадр после того, как запустится applicationWillResignActive, поэтому нет возможности запустить таймер и получить его за 1 секунду нахождения в фоновом режиме в управляемом коде. Хотя я могу отфильтровать OnApplicationFocus() с помощью hasFocus==true, я не могу сделать то же самое с hasFocus==false из-за этого.


person john316    schedule 01.12.2018    source источник