我的應用程序中有一項功能(音樂家的節拍器應用程序)可以調暗屏幕以節省電池壽命。設置亮度,我使用:無法恢復應用程序退出時的亮度
[UIScreen mainScreen].brightness = 0.1;
我節省了應用程序的原始亮度的viewDidLoad(...)啓動和保存,爲我的用戶默認值。
當改變應用程序中的觀點,我檢索用戶默認原來的亮度和通話恢復:
[UIScreen mainScreen].brightness = originalBrightness;
這工作得很好。我有NSLog(...)消息顯示原始值,等等...所以這個機制起作用。
我遇到的問題是如何爲Home鍵被按下恢復應用程序退出原來的亮度。
我加入了類似的代碼我的應用程序的委託方法:
applicationWillResignActive(...)
applicationDidEnterBackground(...)
applicationWillTerminate(...)
他們每個人都有一個方法調用中有類似的NSLog的視圖之前設置屏幕亮度(...)■顯示檢索到原始亮度......並且全部正確。我也進行了調試,設置亮度的調用正在進行中...但應用程序退出,設備屏幕仍然處於較低的變暗級別。
最後,如果你點擊上方的「鎖定」按鈕,然後按Home鍵喚醒電腦...亮度是正確的。
我懷疑是任何行動或事件觸發與我的電話設置時,應用程序正在退出,通過是沒有得到,可能是由於無效狀態或類似的亮度。
而且,我的應用程序設置爲不運行在後臺,在info.plist中設置爲:
Application does not run in background YES
任何幫助,將不勝感激。
謝謝!
這些私有API是什麼?我沒有在UIScreen類中看到mainWindow或mainWindows(typo?)屬性。你的意思是mainScreen? – picciano 2012-02-29 23:44:17
是的,我的錯字。我是'[UIScreen mainScreen] .brightness = val;'或[[UIScreen mainScreen] setBrightness:val];' – Cal30 2012-03-01 14:34:23
我很確定沒有辦法讓這個設置在您的應用程序之外持久存在。蘋果的文檔沒有具體說明這一點,但我已經看到了兩個其他亮度變化的應用程序,在這種情況下。有人[這裏](http:// stackoverflow。com/a/7901339/76810)同意。 – SSteve 2012-12-20 03:41:26