当我按下按钮时,我不断收到 CalledFromWringThreadException。
我的程序是这样的:
public class MainActivity extends Activity implements Callback {
Handler handler = new Handler(this);
TextView tv = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv1);
Button button = (Button) findViewById(R.id.sendRequest);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
new Thread(new Runnable() {
@Override
public void run() {
//...
Message msg = handler.obtainMessage(0, new String("\nSending Request from " + sourcePortString));
handler.dispatchMessage(msg);
//...
}
}).start();
}
});
}
@Override
public boolean handleMessage(Message msg) {
tv.append((CharSequence) msg.obj);
return true;
}
}
我确实尝试删除 implements Callback
并在匿名类中扩展 Handler
类,实现 handleMessage(Message msg)
方法。但是当我尝试向我的 TextView 附加一些内容时,我仍然得到相同的结果。
我遗漏了一些东西。
我以为我终于掌握了那些Handler
...
你能帮帮我吗?
最佳答案
您使用了错误的方法 dispatchMessage
。
使用发送消息
。
问候
关于android - 使用处理程序时获取 CalledFromWrongThreadException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21503584/