【发布时间】:2013-02-27 16:32:29
【问题描述】:
我有这段代码...
class IncomingHandler extends Handler
{
@Override
public void handleMessage(Message message)
{
String totalReceived = (String) message.obj;
Log.i("TAG", "total received: " + totalReceived);
totalTextView.setText("" + totalReceived);
Log.i("TAG", (Looper.getMainLooper().getThread() == Thread.currentThread()) ? "UI thread" : "NOT UI thread");
//Toast.makeText(MainActivity.this, "message received.", Toast.LENGTH_LONG).show();
};
};
我运行我的应用程序,它运行良好,但如果我重新创建活动,例如通过更改设备方向,文本将不会更新。请注意,我确实收到了这些消息,并且它们已由 LogCat 成功打印。
还要注意,在我的最后一个日志中,我尝试确定我是否在主线程上运行。如果检查正确,我确实在 UI 线程上运行...
关于我可能做错了什么有什么想法吗?
干杯, 亚历克斯
【问题讨论】:
-
忘了提到当我重新创建活动时,我得到的文本是布局中的默认文本......
-
发布你是如何连接/分离处理程序的。
-
事实证明你是对的。我通过处理程序的方式产生差异。我在创建服务时传递了它。现在我每次绑定时都将它作为replyTo参数传递并且它可以工作
标签: android textview handler settext