Skip to content Skip to sidebar Skip to footer

Shared Preferences Updated Value Not Reflected In Service

My application is calling a service at app launch. In the app, I am updating the value of a given key-value pair SharedPreferences.Editor editor = getSharedPreferences(getString(R.

Solution 1:

You need OnSharedPeferencesChangeListener to listen for updates of preferences. Reason it's displaying old value is because it's not updated(Lines of the codes are not called). You need to trigger event to update it.

SharedPreferences prefs = 
PreferenceManager.getDefaultSharedPreferences(this);

prefs.registerOnSharedPreferenceChangeListener(
new SharedPreferences.OnSharedPreferenceChangeListener() {
    public void onSharedPreferenceChanged(
        SharedPreferences prefs, String key) {

        String key = prefs.getString("key",null);
    }
});`

EDIT: You need strong reference for SharedPreferences.OnSharedPreferenceChangeListener object. Example here


Solution 2:

As mentioned here

Note: This class does not support use across multiple processes.

So it wouldn't reflect changes instantaneously.


Post a Comment for "Shared Preferences Updated Value Not Reflected In Service"