【发布时间】:2012-07-07 21:39:40
【问题描述】:
我有两个活动:一个(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(),但这是一个丑陋的解决方案,我想知道如何正确地做到这一点。
【问题讨论】: