未获取服务中共享首选项的更新值

Kam*_*one 4 android android-widget android-service android-activity

我将一些值存储到从窗口小部件启动的活动的共享首选项中.如果我从同一小部件​​启动的服务中检索该值,则不是更新的小部件.我在共享偏好中获得了之前的值.即使我在共享首选项xml中检查该值,我在那里看到更新的那个.为什么会这样.我知道小部件和活动是两个过程,是什么原因?

SharedPreferences preferences = getSharedPreferences("preferences_target_value", Context.MODE_PRIVATE);

String targetValue = preferences.getString("preferences_target_value", "0");

System.out.println("targetValue "+targetValue);`
Run Code Online (Sandbox Code Playgroud)

Dav*_*ser 5

每个进程都缓存这些值.

如果您在Android> 2.3上运行,则必须MODE_MULTI_PROCESS在呼叫时指定getSharedPreferences ().如果您在Android <2.3上运行,那么它应该正常工作.如果您在Android 2.3上运行,那么共享首选项中存在一个错误,无论您做什么,它都无法在多个进程中正常运行.