无法通过IntentService访问共享首选项

时间:2014-11-25 11:18:31

标签: android service preferences

我在Preference中保存一个值,但它总是给我默认值。当应用程序打开时,我可以获得实际值。但是当我从IntentService获得值时,它总是给我默认值。

保存值的代码:

prefs = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putString(key, value);
editor.commit();

读取值的代码:

prefs = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
String value = prefs.getString(key, defaultValue);

但是如果我更改了文件名,那么它的工作时间会延长一段时间,但之后会再次开始提供默认值

2 个答案:

答案 0 :(得分:0)

从共享首选项中检索内容:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(Context);
String s = sp.getString("key", null); // get "value" from the Shared Preferences

答案 1 :(得分:0)

尝试从Context.MODE_PRIVATE更改您的访问模式,因为您正在从外部读取它。 尝试        prefs = context.getSharedPreferences(NAME,Context.MODE_MULTI_PROCESS);