What's The Difference Between Getdefaultsharedpreferences() And Getpreferences()?
Solution 1:
Acoording to the link you provided to Android documentation
getSharedPreferences() - Use this if you need multiple preferences files identified by name, which you specify with the first parameter.
getPreferences() - Use this if you need only one preferences file for your Activity. Because this will be the only preferences file for your Activity, you don't supply a name.
So it is, use getSharedPreferences when the data you want to save/retrieve can be used from different activities in the app. If those preferences will only be used in one Activity, you can use getPreferences.
Edit: also note that as said in the post you linked 'getDefaultSharedPreferences will use a default name like "com.example.something_preferences", but getSharedPreferences will require a name'
Solution 2:
One of the major differences: getPreferences () returns a file only related to the activity it is opened from. While getDefaultSharedPreferences () returns the application's global preferences. Learned that the hard way yesterday.
Solution 3:
If you take a look inside PreferenceManager:
publicstaticSharedPreferencesgetDefaultSharedPreferences(Context context) {
return context.getSharedPreferences(getDefaultSharedPreferencesName(context),
getDefaultSharedPreferencesMode());
}
/**
* Returns the name used for storing default shared preferences.
*
* @see #getDefaultSharedPreferences(Context)
* @see Context#getSharedPreferencesPath(String)
*/publicstaticStringgetDefaultSharedPreferencesName(Context context) {
return context.getPackageName() + "_preferences";
}
privatestatic int getDefaultSharedPreferencesMode() {
returnContext.MODE_PRIVATE;
}
So getDefaultSharedPreferences() use getSharedPreferences() method with your app package name and mode private, if you use getPreferences() from activity it will use the same getSharedPreferences() method but with getLocalClassName();
Solution 4:
From the first article linked below: "Note: The SharedPreferences APIs are only for reading and writing key-value pairs and you should not confuse them with the Preference APIs, which help you build a user interface for your app settings (although they use SharedPreferences as their implementation to save the app settings)."
http://developer.android.com/training/basics/data-storage/shared-preferences.html
Post a Comment for "What's The Difference Between Getdefaultsharedpreferences() And Getpreferences()?"