Read shared preference when context is changed

android, sharedpreferences

Solution

private final static int PREFERENCES_MODE = Context.MODE_MULTI_PROCESS;

Problem

I have a DialogView which stores settings in shared preferences. It is located in package `A` and i have another activity which is located in package `B`, which should be able to read these preferences. So I created a wrapper class, which takes context and shared preference name and retrive these settings. When shared preferences are set at the first time everything works great, but when I change it, I got the same result, which was set at first time. Problem is I save preference in one process and need to be able to read them in another. So it seems like `Context` has changed and I am not able to retrive new context. What should I do to get up to-date shared preference? Thank you on advance. Please take a look at my wrapper class ``` public class PhotoAppWidgetSettingsProxy extends Proxy { private final static String PREFERENCES_NAME = PhotoAppWidgetSettingsProxy.class.getName(); private final static int PREFERENCES_MODE = Context.MODE_PRIVATE; private Context mCtx = null; private SharedPreferences pref = null; private SharedPreferences.Editor editor = null; public PhotoAppWidgetSettingsProxy(String name, Context context) { super(name, context); mCtx = context; pref = context.getSharedPreferences(PREFERENCES_NAME, PREFERENCES_MODE); editor = pref.edit(); } private final static String FRAME = "FRAME"; /** * Sets selected frame mode * @param frame id */ public void setFrameMode(int frameId){ editor.putInt(FRAME, frameId); Log.d(PREFERENCES_NAME, "SET MODE="+frameId); boolean success = editor.commit(); Log.d(PREFERENCES_NAME, "SET MODE="+success); } /** * Gets selected frame mode * @return frame id */ public int getFrameMode(){ Log.d(PREFERENCES_NAME, "GET MODE="+pref.getInt(FRAME, 0)); return pref.getInt(FRAME, 0); } ``` SOLVED: ``` private final static int PREFERENCES_MODE = Context.MODE_MULTI_PROCESS; ```

Original source

Related problems