1

Androidのドキュメントを読んでいます

http://developer.android.com/reference/android/content/SharedPreferences.html

ほとんどすべてのパブリック メソッドは、abstract として宣言されています。

public abstract boolean getBoolean (String key, boolean defValue)
public abstract Map<String, ?> getAll ()
public abstract float getFloat (String key, float defValue

私の質問は、アプリ/アクティビティ内で共有設定をこのように呼び出すことです。

SharedPreferences prefs;
prefs = PreferenceManager.getDefaultSharedPreferences(this);

抽象的なメソッドの使用を強制されるように拡張することは決してありません。それはどのように機能しますか?

4

2 に答える 2

1

ドキュメントをよく見ると、SharedPreference がpublic interface. クラスではありません。Android は、このインターフェースを実装する基礎となるクラスをユーザーに見せたくないため、getSharedPreferences()やなどのファクトリ メソッドgetDefaultSharedPreferences()を提供します。

Context.getSharedPreferences()編集:などのサブクラスに実装される抽象メソッドであることも注目に値しActivity.getSharedPreferences()ます。

于 2013-10-24T17:36:24.257 に答える