У меня есть функция в моем приложении (приложение метронома для музыкантов), чтобы уменьшить яркость экрана, чтобы сэкономить заряд батареи. Чтобы установить яркость, я использую:
[UIScreen mainScreen].brightness = 0.1;
Я сохраняю исходную яркость при запуске приложения в viewDidLoad (...) и сохраняю ее в своих пользовательских настройках по умолчанию.
При изменении представлений в приложении я получаю исходную яркость из пользовательских настроек по умолчанию и восстанавливаю ее с помощью вызова:
[UIScreen mainScreen].brightness = originalBrightness;
Это отлично работает. У меня есть сообщения NSLog (...), показывающие исходное значение и т. Д., Поэтому механизм работает.
У меня возникла проблема, как восстановить исходную яркость при выходе из приложения при нажатии кнопки «Домой».
Я добавил аналогичный код в методы делегата моего приложения для:
applicationWillResignActive(...)
applicationDidEnterBackground(...)
applicationWillTerminate(...)
Каждый из них имеет вызов метода для установки яркости экрана, как и раньше, в представлении с аналогичными NSLog (...), показывающими полученную исходную яркость .. .и все правильно. Я также отлаживал, и выполняются вызовы для установки яркости ... но приложение закрывается, а экран устройства все еще находится на более низком, затемненном уровне.
Наконец, если вы нажмете кнопку «заблокировать» вверху, а затем нажмите кнопку «Домой», чтобы разбудить его ... яркость правильная.
Я подозреваю, что любое действие или событие, вызванное моим вызовом для установки яркости при выходе из приложения, не проходит, возможно, из-за недопустимого состояния или чего-то подобного.
Кроме того, мое приложение НЕ настроено на работу в фоновом режиме, задано в info.plist как:
Application does not run in background YES
Любая помощь будет принята с благодарностью.
Спасибо!