Skip to content

Most visited

Recently visited

navigation
added in API level 26

PreferenceDataStore

public interface PreferenceDataStore

android.preference.PreferenceDataStore


A data store interface to be implemented and provided to the Preferences framework. This can be used to replace the default SharedPreferences, if needed.

In most cases you want to use SharedPreferences as it is automatically backed up and migrated to new devices. However, providing custom data store to preferences can be useful if your app stores its preferences in a local db, cloud or they are device specific like "Developer settings". It might be also useful when you want to use the preferences UI but the data are not supposed to be stored at all because they are valid per session only.

Once a put method is called it is full responsibility of the data store implementation to safely store the given values. Time expensive operations need to be done in the background to prevent from blocking the UI. You also need to have a plan on how to serialize the data in case the activity holding this object gets destroyed.

By default, all "put" methods throw UnsupportedOperationException.

See also:

Summary

Public methods

default boolean getBoolean(String key, boolean defValue)

Retrieve a boolean value from the data store.

default float getFloat(String key, float defValue)

Retrieve a float value from the data store.

default int getInt(String key, int defValue)

Retrieve an int value from the data store.

default long getLong(String key, long defValue)

Retrieve a long value from the data store.

default String getString(String key, String defValue)

Retrieve a String value from the data store.

default Set<String> getStringSet(String key, Set<String> defValues)

Retrieve a set of String values from the data store.

default void putBoolean(String key, boolean value)

Set a boolean value to the data store.

default void putFloat(String key, float value)

Set a float value to the data store.

default void putInt(String key, int value)

Set an int value to the data store.

default void putLong(String key, long value)

Set a long value to the data store.

default void putString(String key, String value)

Set a String value to the data store.

default void putStringSet(String key, Set<String> values)

Set a set of String value to the data store.

Public methods

getBoolean

added in API level 26
boolean getBoolean (String key, 
                boolean defValue)

Retrieve a boolean value from the data store.

Parameters
key String: The name of the preference to retrieve.

defValue boolean: Value to return if this preference does not exist.

Returns
boolean

getFloat

added in API level 26
float getFloat (String key, 
                float defValue)

Retrieve a float value from the data store.

Parameters
key String: The name of the preference to retrieve.

defValue float: Value to return if this preference does not exist.

Returns
float

getInt

added in API level 26
int getInt (String key, 
                int defValue)

Retrieve an int value from the data store.

Parameters
key String: The name of the preference to retrieve.

defValue int: Value to return if this preference does not exist.

Returns
int

getLong

added in API level 26
long getLong (String key, 
                long defValue)

Retrieve a long value from the data store.

Parameters
key String: The name of the preference to retrieve.

defValue long: Value to return if this preference does not exist.

Returns
long

getString

added in API level 26
String getString (String key, 
                String defValue)

Retrieve a String value from the data store.

Parameters
key String: The name of the preference to retrieve.

defValue String: Value to return if this preference does not exist.

This value may be null.

Returns
String

This value may be null.

getStringSet

added in API level 26
Set<String> getStringSet (String key, 
                Set<String> defValues)

Retrieve a set of String values from the data store.

Parameters
key String: The name of the preference to retrieve.

defValues Set: Values to return if this preference does not exist.

This value may be null.

Returns
Set<String>

This value may be null.

putBoolean

added in API level 26
void putBoolean (String key, 
                boolean value)

Set a boolean value to the data store.

Once the value is set the data store is responsible for holding it.

Parameters
key String: The name of the preference to modify.

value boolean: The new value for the preference.

putFloat

added in API level 26
void putFloat (String key, 
                float value)

Set a float value to the data store.

Once the value is set the data store is responsible for holding it.

Parameters
key String: The name of the preference to modify.

value float: The new value for the preference.

putInt

added in API level 26
void putInt (String key, 
                int value)

Set an int value to the data store.

Once the value is set the data store is responsible for holding it.

Parameters
key String: The name of the preference to modify.

value int: The new value for the preference.

putLong

added in API level 26
void putLong (String key, 
                long value)

Set a long value to the data store.

Once the value is set the data store is responsible for holding it.

Parameters
key String: The name of the preference to modify.

value long: The new value for the preference.

putString

added in API level 26
void putString (String key, 
                String value)

Set a String value to the data store.

Once the value is set the data store is responsible for holding it.

Parameters
key String: The name of the preference to modify.

value String: The new value for the preference.

This value may be null.

putStringSet

added in API level 26
void putStringSet (String key, 
                Set<String> values)

Set a set of String value to the data store.

Once the value is set the data store is responsible for holding it.

Parameters
key String: The name of the preference to modify.

values Set: The set of new values for the preference.

This value may be null.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)