如果查看SharedPreferences,它会清楚地显示它是Android SDK中的界面。
公共接口SharedPreferences
任何人都可以帮助我更好地理解哪个类确切地为SharedPreferences的函数提供了定义吗?
答案 0 :(得分:3)
这是一个界面,在android的文档中没有错误。正如您在SharedPreferences
的源代码中所看到的那样:
public interface SharedPreferences {
挖掘android的源代码,我们可以看到Activity
从ContextWrapper
延伸
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?