我的应用程序(音乐家节拍器应用程序)中有一个功能可以调暗屏幕以节省电池寿命。要设置亮度,我正在使用:
[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
任何帮助,将不胜感激。
谢谢!