如何阅读更新的共享偏好?

时间:2012-07-07 22:01:33

标签: android sharedpreferences

我有两个活动:一个(SettingsActivity),它在onStop()中保存首选项,如下所示:

SharedPreferences.Editor editor = getSharedPreferences("myprefs", Context.MODE_PRIVATE).edit();

editor.putString("login", etLogin.getText().toString());
editor.putString("password", etPassword.getText().toString());

editor.commit();

和第二个(MainActitivy),它在onResume()中读取它们

SharedPreferences prefs = activity.getSharedPreferences("myprefs", Context.MODE_PRIVATE);
prefs.getString(...);

当我更改设置并返回主活动时,会加载旧值!我必须再次打开SettingsActivity并再次返回,以便进行更改。

onStop()是否在onResume()旁边的单独线程中运行保存例程,所以在读取时,还没有提交更改?如何实现正确的行为?

肮脏的解决方案想法:我正在考虑一个单身人士,它拥有我的偏好并且有save()和load(),但这是一个丑陋的解决方案,我想知道,如何正确地做到这一点。

1 个答案:

答案 0 :(得分:0)

如果没有你必须调用finish(),那么SettingsActivity是否已停止;保存用户名和密码后调用onstop()方法(activity lifecycle)。

如果您只是调用save方法并通过单击后退按钮返回主活动,则不会触发onStop()方法。因为SettingsActivity仍然在后台运行并暂停。