SharedPreferences pref =getApplicationContext().getSharedPreferences("MyPref", 0);
Editor editor = pref.edit();
这是我在sharedpreferences
上获得的一个代码。在这个getApplicationContext()
和getSharedPreferences()
方法中使用了Context类,但getApplicationContext()
和getSharedPreferences()
都是抽象的,那么我们如何在没有任何实现的情况下使用它们呢?
编辑1:
我说使用上面的代码创建了sharedpreferences对象,但是所使用的方法都是抽象的,那么我们如何在不实现它们的情况下使用它们呢?
答案 0 :(得分:0)
这取决于你在哪里以及你想要完成什么。 Please read more about Android context。一般来说,您想要访问共享首选项,因为您想存储一些值,通常您在Activity类中。在Activity中,您有两种方法可以访问上下文: getBaseContext()和 getApplicationContext()。前者将为您提供基本上下文,每个实例都是唯一的,后者将为您提供应用程序上下文,每个进程都是唯一的。系统将在创建每个Activity时为每个Activity创建基本上下文的实现,并在创建进程时为您创建应用程序上下文实现。你看到的是他们的抽象声明,显然。
答案 1 :(得分:0)
getApplicationContext() and getSharedPreferences() are abstract
- 它们在Context
课程中是抽象的,但在其中已经实施。例如,Activty
是Context
的子类,它具有getApplicationContext()
的实现,如下所示:
@Override
public Context getApplicationContext() {
return mBase.getApplicationContext();
}
mBase
是Context
的某些非公开实现,当Activity
附加到ActivityThread
时,$post->user->name
已分配给$post->likes->user_id
。
您可以轻松检查 Android来源,并自行查找此内容以及更多其他有趣内容。