1

正如标题所说,我在更新 Textview 上的内容时遇到了麻烦。一切都很好,直到我改变方向。

这是保存 Textview 的 Activity 的 onCreate:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    setContentView(R.layout.transacao);

    screenTextView = (TextView) findViewById(R.id.lblStatusTrn);
    screenTextView.setText(screenMessage);

    //...
}

这是更新 Textview 的代码:

private void setScreenMessage(String message) {
    screenMessage = message;
    screenTextView = (TextView) findViewById(R.id.lblStatusTrn);
    screenTextView.setText(screenMessage);
}

即使我没有收到任何错误,在我调用 setScreenMessage 后 Textview 也不会更新。这一切都发生在方向改变之后。如果我不改变方向,一切正常。

我已经在这里研究了许多类似的问题,但似乎没有一个对我有用。

编辑 1:我不知道它是否相关,但是 setScreenMessage 是通过处理程序从另一个线程调用的。处理程序的代码:

public void handleMessage(android.os.Message message) {
   //...
   // This command calls setScreenMessage
   command.execute();
}

编辑 2:显然,使用 Broadcast 成功了。但这让我想,我是否有可能对 Activity 有一个有效的引用,即使显示的不是这个引用。如果是这样的话,我可能有一个无用的参考资料偷走了我的记忆。可能吗?有没有办法检查这个?

4

0 回答 0