live壁紙 その2
みんなPreferenceはどうしているんろう?
秒間数十回も描画更新するlive壁紙では
毎回SharedPreferenceから設定値を取得するのはどうなんだろうと思える。
特にstring-arrayで定義したものは設定値をintegerにできないから
毎回文字列比較するなんてコストが高い気がして嫌だ。
こういう時のセオリーを知りたいけどなかなか検索に引っかからない。
仕方ないので各種設定値を数値型に変換して保持するクラスを作って
起動時と設定変更時に更新するような仕組みを考案中。
現行案は各設定項目の
- key
- default
- entrys
- entryvalues
のIDでinteger-arrayを作って、Enum型で管理しようかと。
- 更新時にのみ文字列比較
- その結果を現在設定としてentryvaluesのリソースID値で保持
- 処理側ではリソースID値での比較を行う
ということを考えているけど
邪道だろうか?
もっといい方法はないだろうか?