2012-03-15 87 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