应用程序退出时无法恢复亮度

Cal*_*l30 12 iphone brightness mainwindow uiscreen

我的应用程序(音乐家的节拍器应用程序)中有一项功能可以调暗屏幕以节省电池寿命.要设置亮度,我正在使用:

[UIScreen mainScreen].brightness = 0.1;
Run Code Online (Sandbox Code Playgroud)

我在viewDidLoad(...)中启动app保存原始亮度并将其保存到我的用户默认值.

在应用程序中更改视图时,我从用户默认值中检索原始亮度并通过调用恢复:

[UIScreen mainScreen].brightness = originalBrightness;
Run Code Online (Sandbox Code Playgroud)

这很好用.我有NSLog(...)消息显示原始值等...所以机制工作.

我遇到的问题是如何在按下主页按钮时恢复应用程序退出时的原始亮度.

我已经为我的应用程序委托方法添加了类似的代码:

applicationWillResignActive(...)
applicationDidEnterBackground(...)
applicationWillTerminate(...)
Run Code Online (Sandbox Code Playgroud)

它们每个都有一个方法调用,用于在视图中设置屏幕亮度,类似的NSLog(...)显示检索到的原始亮度...并且它都是正确的.我也已调试并且正在调用设置亮度...但是应用程序退出,设备屏幕仍处于较低的调暗级别.

最后,如果单击顶部的"锁定"按钮,然后按"主页"按钮将其唤醒...亮度正确.

我的怀疑是,当应用程序退出时我设置亮度的调用触发的任何操作或事件都没有通过,可能是由于状态无效或类似.

此外,我的应用程序设置为不在后台运行,在info.plist中设置为:

Application does not run in background     YES
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

谢谢!

pic*_*ano 2

iOS 允许该应用程序在退出前等待一段时间。设置亮度后,您可以尝试sleep一秒钟。