onTouch()リスナーの1つで、タッチイベントの処理方法を決定する前に、現在ブールユーザー設定を確認しています。
boolean shouldCue = preferences.getBoolean(v.getContext().getString(R.string.should_cue), true);
LogCatを観察すると、ユーザーが画面に触れると、このステートメントが何度も呼び出されることがわかります。
そのため、 onSharedPreferenceChanged()リスナーshouldCue
を実装することで、そのブール値を「キャッシュ」することを考えていました。
もちろん、これを実装して...超高速のAndroidデバイスでごくわずかな違いを観察することもできます。バリエーションが多すぎるため、「大多数のAndroidデバイス」でこれをテストすることはできません。
だから私の質問は:
- UIを介して設定が変更されていない場合でも、onSharedPreferenceChanged()が呼び出されますか?(つまり、プログラムで
editor.commit();
) - SharedPreferencesブール値をUIまたはプログラムで(両方を同時にではなく)変更できる場合、それをキャッシュすると@Synchronized処理が義務付けられますか?
- キャッシュされた方法とキャッシュされていない方法のパフォーマンスの違いに関する見積もりはありますか?(質問を簡単にするために、Droid 1 A855のような古い電話を参照していると仮定しましょう)