SDK内には、DefaultSharedPreferencesというクラスはありませんが、getDefaultSharedPreferences()で取得できるSharedPrefrencesの事をDefaultSharedPreferencesと私は呼んでいます。

SharedPreferencesは、ユーザが自由なファイル名及びモードで作成できますが、PreferenceActivityでは自動的に、SharedPreferencesを作成します。この自動的に作成されるSharedPreferencesがDefaultSharedPreferencesです。

DefaultSharedPreferences特徴

  • ファイル名はパッケージ名+”_preferences”
  • アクセスモードは通常、MODE_PRIVATE
  • アプリケーションディレクトリ下の、shared_prefディレクトリに作成される。

DefaultSharedPreferencesの取得法

  1. PrefrenceManagerクラスの、getDefaultSharedPreferences()でSharedPreferencesを取得可能です。DefaultShredPreferencesですので、ファイル名とモードは必要ありません。
  2. ActivityクラスのSharedPreferences getPreferences(int mode)でDefaultSharedPreferencesを取得可能です。ファイル名なしで、モードのみの指定となります。(通常はMODE_PRIVATEを指定するのが良いでしょう)。

注意) SDK 1.1のActivityの説明ページで、getSharedPreferences()というメソッド(引数なし)が記載されていますが、このようなメソッドはありません。

使いどころ

PreferenceActivityを持たないアプリケーションでもDefaultSharedPreferencesは使用可能です。
通常のSharedPrefrencesだと、ファイル名をどこかに保持しなければいけないので、ファイル名をグローバルにアクセスできる変数に設定しなければならなく、汚いソースコードになります。
DefaultSharedPreferencesであれば、アプリケーションのどこからでも、呼ぶことができますので非常に使いやすくなります。

また、PreferenceActivityで設定した値は、getDefaultSharedPreferencesを使用することで、プログラムのどこからでも設定値の取得が可能です。

ブログ内の関連する記事