主な違いは名前にあり、現在の設定値のマップの取得やユーザー設定の設定など、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これらのメソッドの戻り値は同じオブジェクトである必要があります。それがあなたが求めていた答えであることを願っています。PreferenceScreenPreferenceManager
選択肢がある場合は、 を使用します。これはPreferenceManager.getSharedPreferences()より明白であり、内部でのメソッド呼び出しが 1 つ少なくなります。
楽しい事実:
PreferenceFragment:
public PreferenceManager getPreferenceManager() {
return mPreferenceManager;
}
public PreferenceScreen getPreferenceScreen() {
return mPreferenceManager.getPreferenceScreen();
}