如何在偏好更改中更新backstack中的活动?

时间:2015-08-11 12:30:42

标签: android android-preferences android-lifecycle activity-lifecycle

我有一个包含WordPress文章的活动。可以在设置中修改文章的文本大小。现在,加载新文章将显示修改后的文本大小。但是,此更改不会影响backstack中的文章活动,后者仍显示旧文本大小。

处理这种情况的最佳方法是什么?

我尝试了OnSharedPreferenceChangeListener,但我不认为后台活动能够接收更改事件,因为它在后台。我现在想要保持更改首选项的时间并将其与onResume中原始文章活动实例化时的比较,然后相应地重新加载文章。

有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

你可以坚持实际价值而不是时间,但除此之外:不。 暂停的活动不应该做任何事情,即使有可能以某种方式。 onResume是前往这里的方式。

进一步说明:暂停的活动理论上仍然可以被其他引用使用,但是当Android在RAM上运行不足时,可以随时卸载暂停的Activity。然后在返回时从savedInstanceState恢复。因此,使用暂停的Activity是不可靠的,因为它可能会卸载也可能不会卸载。

答案 1 :(得分:0)

在onResume方法中,执行以下操作:

  @Override
protected void onResume(){
SharedPreferences Prefs =  PreferenceManager.getDefaultSharedPreferences(this);
     int fontSize = Prefs.getInteger("font_size", 16);
}
.....
// then set your text font size ...