正如标题所说,我在更新 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 有一个有效的引用,即使显示的不是这个引用。如果是这样的话,我可能有一个无用的参考资料偷走了我的记忆。可能吗?有没有办法检查这个?