它是否保证在Context中的getDefaultSharedPreferences中给出相同的结果?

时间:2014-01-06 09:33:34

标签: android sharedpreferences

我看了this discussion,但仍有疑问。

如果我使用getDefaultSharedPreferences(getApplicationContext())getDefaultSharedPreferences(SomeActivity.this),是否保证提供相同的结果(相同的xml首选项文件访问权限)?

2 个答案:

答案 0 :(得分:1)

是的,确实如此。 context参数用于获取包名称,该名称将用作android存储您的值的xml文件的名称。您可以看到androis的源代码here

答案 1 :(得分:0)

祝你新年快乐 - 2014

两者都表现得相同!!

View.getContext():返回视图当前运行的上下文。通常是当前活动的Activity。

Activity.getApplicationContext():返回整个应用程序的上下文(所有活动在其中运行的进程)。如果您需要与整个应用程序的生命周期相关联的上下文,而不仅仅是当前的Activity,请使用此代替当前的Activity上下文。

ContextWrapper.getBaseContext():如果需要从另一个上下文中访问Context,则使用ContextWrapper。 Context从内部引用ContextWrapper是通过getBaseContext()访问的。

请注意幕后

getDefaultSharedPreferences(context)

呼叫

getSharedPreferences(context.getPackageName(), MODE_PRIVATE)

据我所知:Context是基础对象。因此,与Application相同的每个Activity都来自Context。这意味着每个Activity和每个Application都是一个Context; 希望你现在理解这些东西,这样我们就可以说它们会产生同样的行为。

请参阅http://developer.android.com/reference/android/app/Activity.html 和  http://developer.android.com/reference/android/content/Context.html