0

我在一个大项目中遇到了问题。我将尝试将其归结为(我希望)是重点。我有一个由几个Activitys 组成的应用程序,其中一个是其他启动的主要导航点。

一旦 mainActivity被破坏并重新创建(通过导航到另一个Activity并返回),视图更新似乎不起作用。具体来说,我有一个Button和几个TextViews。重新创建后Activity,我无法更改其文本。我试过改变Activity背景颜色,也不管用。

我的第一个想法是我在保存/恢复过程中错过了一个重要的数据成员。但是,我已经看了很多,我认为这不是问题。另外,我尝试不加载保存的数据并重新开始,但它仍然没有更新视图。

接下来,我认为我可能不会在 UI 线程上进行更新。我确定这会导致异常,但可以肯定的是,我将刷新发布到Handler. 还是没有骰子。

但是,如果我将它们连接到onClick(). 在这种情况下,哪些有效,哪些无效会引发其他问题(一些数据已损坏),所以现在这就是我集中调查的地方。一旦我得到更多的映射,我会提供更新。

我还应该看什么?

更新:添加一些片段:

来自onCreate()

if (savedInstanceState != null) {
  Log.v(Calculations.log, "Restarting with saved instance state");
  Serializable ser = savedInstanceState.getSerializable("infusion");
  if ((ser != null) && (ser instanceof Infusion)) {
    mInfusion = (Infusion) ser;
  }
  mBeganEditing = savedInstanceState.getBoolean("editing",
    mInfusion != null);
  Log.v(Calculations.log, this.toString());
}

及其匹配onSaveInstanceState()

@Override
protected void onSaveInstanceState(Bundle outState) {
    Log.v(Calculations.log, "StageInfusion::onSaveInstanceState()");
    Log.v(Calculations.log, this.toString());
    outState.putSerializable("infusion", mInfusion);
    outState.putBoolean("editing", mBeganEditing);
    outState.putBoolean("resume", true);
    ServerManager.stopListening();

    super.onSaveInstanceState(outState);
}

我希望还有其他成员应该被拯救,但他们的影响很小。

4

0 回答 0