android哪个类为SharedPreferences接口提供定义

时间:2015-12-13 06:48:59

标签: android class interface sharedpreferences

如果查看SharedPreferences,它会清楚地显示它是Android SDK中的界面。

公共接口SharedPreferences

任何人都可以帮助我更好地理解哪个类确切地为SharedPreferences的函数提供了定义吗?

1 个答案:

答案 0 :(得分:3)

这是一个界面,在android的文档中没有错误。正如您在SharedPreferences的源代码中所看到的那样:

public interface SharedPreferences {

挖掘android的源代码,我们可以看到ActivityContextWrapper延伸

public class Activity extends ContextThemeWrapper
    implements LayoutInflater.Factory2,
    Window.Callback, KeyEvent.Callback,
    OnCreateContextMenuListener, ComponentCallbacks2,
    Window.OnWindowDismissedCallback {

查看ContextWrapper.java,它会调用getSharedPreferences

中的Context函数
Context mBase;

@Override
public SharedPreferences getSharedPreferences(String name, int mode) {
    return mBase.getSharedPreferences(name, mode);
}

Context.java中声明为abstract函数,

/**
 * Interface to global information about an application environment.  This is
 * an abstract class whose implementation is provided by
 * the Android system.  It
 * allows access to application-specific resources and classes, as well as
 * up-calls for application-level operations such as launching activities,
 * broadcasting and receiving intents, etc.
 */
public abstract class Context {

    public abstract SharedPreferences getSharedPreferences(String name, int mode);

}

总之,SharedPreferences在每个class实施中的interface(每Context}中实施。如果我们查看Context源代码中的注释,我们可以看到:

  

这是一个抽象类,其实现由   Android系统

如果您想了解有关Context的更多信息,可以参考以下信息:What is Context in Android?