正如标题所说,我在更新Textview上的内容时遇到了麻烦。这一切都运作良好,直到我改变方向。
以下是包含Textview的活动的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 :我不知道它是否相关,但是通过Handler从另一个线程调用setScreenMessage。 处理程序代码:
public void handleMessage(android.os.Message message) {
//...
// This command calls setScreenMessage
command.execute();
}
编辑2 :显然,使用广播就可以了。但这让我想到,如果有可能我有一个对Activity的有效引用,即使它没有显示这个引用。如果是这样的话,我可能会有一个无用的引用来偷走我的记忆。可能吗?有没有办法检查这个?