Приложение для iOS работает в фоновом режиме, даже когда isIdleTimerDisabled = false - PullRequest
0 голосов
/ 11 мая 2018

Я создаю приложение с будильником и хочу, чтобы оно оставалось открытым ночью. У меня есть представление, которое показывает время и инструктирует пользователя держать приложение открытым, а когда пользователь запускает будильник, я установил:

UIApplication.shared.isIdleTimerDisabled = true

Это обычно работает, и приложение остается активным всю ночь - за исключением того, что оно ВСЕГДА не работает. Иногда я нахожу приложение фоновым по утрам. Я получил похожие отчеты от тестовых пользователей. Приложение, похоже, не падает (у меня есть отчеты о сбоях).

У кого-нибудь есть идеи, что могло бы произойти, или даже хороший способ отладить это? Какое событие может привести к тому, что приложение получит фон от системы (я могу думать только об автообновлении iOS, но это не так)? Что я могу записать в applicationWillEnterBackground, чтобы понять это?

Спасибо!

UPDATE:

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

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

В свете этого есть идеи? или идеи по отладке? Я действительно озадачен этим ...

Спасибо!

...