SharedPreferences
suggest changeIntroduction
SharedPreferences provide a way to save data to disk in the form of key-value pairs.
Syntax
- Context Method
- public SharedPreferences getSharedPreferences(String name, int mode)
- Activity Method
- public SharedPreferences getPreferences()
- SharedPreferences Methods
- public SharedPreferences.Editor edit()
- public boolean contains()
- public Map<String, ?> getAll()
- public boolean getBoolean(String key,
boolean defValue)
- public float getFloat(String key,
float defValue)
- public int getInt(String key,
int defValue)
- public long getLong(String key,
long defValue)
- public String getString(String key,
String defValue)
- public Set<String> getStringSet(String key,
Set<String> defValues)
- public void registerOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)
- public void unregisterOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)
- SharedPreferences.Editor Methods
- public void apply()
- public boolean commit()
- public SharedPreferences.Editor clear()
- public SharedPreferences.Editor putBoolean (String key,
boolean value)
- public SharedPreferences.Editor putFloat (String key,
float value)
- public SharedPreferences.Editor putInt (String key,
int value)
- public SharedPreferences.Editor putLong (String key,
long value)
- public SharedPreferences.Editor putString (String key,
String value)
- public SharedPreferences.Editor putStringSet (String key,
Set<String> values)
- public SharedPreferences.Editor remove (String key)
Parameters
Parameter | Details |
——— | —–– |
key | A non-null String
identifying the parameter. It can contain whitespace or non-printables. This is only used inside your app (and in the XML file), so it doesn’t have to be namespaced, but it’s a good idea to have it as a constant in your source code. Don’t localize it. |
defValue | All the get functions take a default value, which is returned if the given key is not present in the SharedPreferences
. It’s not returned if the key is present but the value has the wrong type: in that case you get a ClassCastException
. |
Remarks
SharedPreferences
shouldn’t be used for storing large amount of data. For such purposes, it’s much better to useSQLiteDatabase
.SharedPreferences
are single process only, unless you use deprecated modeMODE_MULTI_PROCESS
. So if your app has multiple processes, you won’t be able to read main process’sSharedPreferences
in another process. In such cases, you should use another mechanism to share data across processes, but don’t useMODE_MULTI_PROCESS
as it is not reliable as well as deprecated.- It’s better to use
SharedPreferences
instance inSingleton
class to access all over the Applicationcontext
. If you want to use it only for particular Activity go forgetPreferences()
. - Avoid storing sensitive information in clear text while using
SharedPreferences
since it can be read easily.
Official Documentation
https://developer.android.com/reference/android/content/SharedPreferences.html
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents