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"