バッテリ寿命を節約するために、私のアプリ(ミュージシャンのためのメトロノームアプリ)に画面を暗くする機能があります。明るさを設定するには、私が使用しています:アプリケーションの終了時に明るさを復元できません
[UIScreen mainScreen].brightness = 0.1;
を私はのviewDidLoad(...)で起動アプリの元の明るさを節約し、自分のユーザデフォルトにすることを保存しています。アプリ内のビューを変更する場合
、私はユーザデフォルトから元の明るさを取得し、呼び出しで復元:
[UIScreen mainScreen].brightness = originalBrightness;
これが正常に動作します。元の値などを示すNSLog(...)メッセージがあります。そのため、メカニズムが機能します。
問題は、ホームボタンを押したときにアプリケーション終了時に元の明るさに戻す方法です。これら各々は、同様のNSLog(...)とビューに前のように画面の明るさを設定するためのメソッド呼び出しを示すsを有する
applicationWillResignActive(...)
applicationDidEnterBackground(...)
applicationWillTerminate(...)
:私は私のアプリケーションのデリゲートメソッドのようなコードを追加した
元の明るさを取得して...それはすべて正しいです。私もデバッグして明るさを設定するための呼び出しが行われている...しかし、アプリが終了し、デバイスの画面はまだ、淡色の低いレベルにあります。
最後に、「ロック」ボタンをクリックしてホームボタンを押すと、目を覚ますと明るさが正しく表示されます。
私の疑念は、アプリケーションが終了しているときに明るさを設定するために呼び出されたアクションやイベントは、状態が無効であるなどの理由で発生している可能性があります。
はまた、私のアプリは、バックグラウンドで実行しないように設定されたInfo.plistファイルに設定されている:任意の助けをいただければ幸いです
Application does not run in background YES
。
ありがとうございます!
これらのプライベートAPIはありますか? UIScreenクラスのmainWindowまたはmainWindows(typo?)のプロパティが表示されません。 mainScreenを意味しますか? – picciano
はい、私の部分に誤植。私は '[UIScreen mainScreen] .brightness = val;'です。または[[UIScreen mainScreen] setBrightness:val]; ' – Cal30
私はこの設定をあなたのアプリの外で永続化させる方法がないと確信しています。 Appleのドキュメンテーションはこれを具体的に言っているわけではありませんが、私は2つの他の明るさが変化するアプリケーションを見てきました。誰か[ここ](http:// stackoverflow。com/a/7901339/76810)が同意しています。 – SSteve