主な違いは名前にあり、現在の設定値のマップの取得やユーザー設定の設定など、PreferenceManger
管理のために開発者にさまざまな機能へのアクセスを許可します。SharedPreferences
デフォルト値に。PreferenceScreen
ユーザー設定の画面の表示を処理して、ユーザーがそれらに値を割り当てることができるようにします。PreferenceScreen
これは、がネストされている場合のように、他の設定を含む画面にリスト項目を表示することを意味する場合があります。
PreferenceManager.getSharedPreferences()
あなたの質問は、あなたが whatとdosの間に違いがあると思うことを意味しますがPreferenceScreen.getSharedPreferences()
、ソースコードによれば、それらは同一です。
PreferenceScreen
:
public SharedPreferences getSharedPreferences() {
if (mPreferenceManager == null) {
return null;
}
return mPreferenceManager.getSharedPreferences();
}
したがって、PreferenceManger
とPreferenceScreen
は異なるエンティティですが、からメソッドを呼び出すため、SharedPreference
これらのメソッドの戻り値は同じオブジェクトである必要があります。それがあなたが求めていた答えであることを願っています。PreferenceScreen
PreferenceManager
選択肢がある場合は、 を使用します。これはPreferenceManager.getSharedPreferences()
より明白であり、内部でのメソッド呼び出しが 1 つ少なくなります。
楽しい事実:
PreferenceFragment
:
public PreferenceManager getPreferenceManager() {
return mPreferenceManager;
}
public PreferenceScreen getPreferenceScreen() {
return mPreferenceManager.getPreferenceScreen();
}