私はいくつかのSharedPreferencesを使用してアプリケーションにデータを格納しています。 いくつかの設定は、多くのアクティビティで使用されます。SharedPreferencesアプリケーションコンテキストとアクティビティコンテキスト
私は、SharedPreferencesが内部的に高速な読み取りアクセスのためのマップに裏打ちされ、設定が変更されたときにsdcardに書き込まれることを知っています。
私はsharedpreferenceがactiviesの多くによってアクセスされた場合に優れている方法だろう:
- はアクティビティコンテキストを使用して、すべての活動でそれをインスタンス化します。
- すべてのアクティビティでインスタンス化しますが、アプリケーションコンテキストを使用します。
- Applicationクラスを作成し、そのインスタンスを一度だけインスタンス化します。これはシングルトンに似ています。
私が使用しているのは、1.ソリューションには、すべてのアクティビティに対してsharedpreferenceオブジェクトがありますか?そして、活動が破壊されたときにsharedpreferenceの内部マップは破壊されますか?
私が2.ソリューションを使用する場合、すべてのアクティビティでgetSharedPreferencesを呼び出しますが、インスタンスは1つだけですか?そしてアプリケーションが生存している限り、内部マップは記憶されますか?
うまくいえば、Androidが内部的にどのように処理するかを誰かが知っていたらうれしいことです。
私はchoice threeをお勧めします。あなたはあなたのすべての活動からアクセスすることができ、1つだけ読む必要があります。 – Joel