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