2012-03-15 86 views
2

我有一个iOS 5.0应用程序,我希望在终止之前更改屏幕亮度。我用过:终止前更改屏幕亮度

[[UIScreen mainScreen] setBrightness:0.2]; 

我只有一个视图。我试着在applicationWillTerminateviewDidUnloadviewWillUnloadviewWillDisappear中运行这个。我使用断点来确认代码确实得到执行,但屏幕亮度不会改变。

我在做什么错?

这样做的原因是我改变了应用程序内部的亮度,我想恢复到启动应用程序之前的亮度。

回答

1

的问题是,你并不总是能够捕捉到应用程序终止。实际上,只有使用UIApplicationExitOnSuspend,info.plist这将会禁用应用程序的后台模式,并且每次按主页按钮时都会调用applicationWillTerminate。如果您希望并支持后台模式,则解决方法是将系统级别的亮度恢复为applicationWillResignActive,应用程序级别为applicationDidBecomeActive

+0

@Radu你是对的,也尝试了'applicationWillResignActive'的后台线程和'UIApplicationExitOnSuspend'的'applicationWillTerminate' - 没有任何工作。由于applicationWillResignActive和applicationWillTerminate似乎对应用程序不再显示时被调用,因此可能没有足够的权限来控制UIScreen。感谢编辑:) – 2012-03-15 20:46:21

+0

这就是我一开始以为的想法,但是当我想起它的时候,它没有什么意义......在应用程序进入后台之后,不允许你设置亮度。另外,我认为它应该自动将亮度改回自己,而不是让应用程序根据设备亮度进行任何操作......这对用户来说是最好的利益...... – rid 2012-03-16 03:09:55

+0

绝对不应该自动改变亮度。我一直使用亮度滑块应用程序,如果停止工作,我会讨厌它。 – 2012-04-24 15:14:53