Difference between getDefaultSharedPreferences and getSharedPreferences
Android中
1 2 3 4 5 6 7 8 9 10 11 12 | public static SharedPreferences getDefaultSharedPreferences(Context context) { return context.getSharedPreferences(getDefaultSharedPreferencesName(context), getDefaultSharedPreferencesMode()); } private static String getDefaultSharedPreferencesName(Context context) { return context.getPackageName() +"_preferences"; } private static int getDefaultSharedPreferencesMode() { return Context.MODE_PRIVATE; } |
让我们回顾一下差异的基本点:
1 2 3 4 | SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(this); if (spref.contains("email")) { String sEmailAddr = spref.getString("email",""); } |
首选项通常存储在
另一种方法-
正如copolii提到的,?峁窍嗤模堑谝桓鲅∠罡虻ィ⑶胰狈Σ鸱治喔鍪籽∠钗募牧榛钚裕馐?code>getSharedPreferences()的第二个选项所提供的。
使用
>
>
恕我直言,
>
>
如果有人知道有规律地定期使用getSharedPreference(ǎ┒皇莋etDefaultSharedPreference(ǎ┑某浞掷碛桑朐诖舜ζ缆垡愿嬷摇
b>
MXU11
a>
我知道这篇文章有点老了,但是由于v7支持库的24.0.1版本,您可以在任何地方使用上下文来检索默认首选?/p>b>
1 2 3 | // context might be an application context, activity, .. // so if you want to get your apps defaults, pass an activity context PreferenceManager.getDefaultSharedPreferences(context) |
a>
请参阅https://developer.android.com/reference/android/support/v7/preference/PreferenceManager#getdefaultsharedpreference
XU11
a>
getSharedPreference(ǎ┖蚲etDefaultSharedPreference(ǎ┚糜诜梦视τ贸绦蚣镀谩etDefaultSharedPreference(ǎ┯糜诨袢》螦ndroid整体偏好框架的共享偏好。 getDefaultSharedPreference(ǎ┳詈檬褂茫蛭峁┝四锨榭鱿掠隤referenceActivity一起使用的SharedPreferences对象?/p>
11
a>
还有第三个功能?/p>b>
1 | public SharedPreferences Activity.getPreferences(int mode) {} |
a>
看到我的问题和答案在这里:混乱与android的共享的首选项-使用哪个功能?/p>b
PMXU11
a>
请注意,使用默认共享首选项与在包名称中使用共享首选项是不同的?/p>b>
1 | context.getSharedPreferences(getPackageName(), MODE_PRIVATE); |
a>
=>共享首选项的名称:" com.my.packagename
b>
1 | PreferenceManager.getDefaultSharedPreferences(context); |
a>
=>共享首选项的名称:" com.my.packagename_preferences
b>