如果你要更新UI的话,可以了解一下runOnUiThread
obtainmessage(可以连带参数一起传递的message):
handler.obtainMessage(1,root.get("code").toString()).sendToTarget();
handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
switch (msg.what){
case 1:
textView.setText(msg.obj.toString());
break;
case 2:
textView1.setText(msg.obj.toString());
break;
case 3:
textView2.setText(msg.obj.toString());
break;
case 4:
textView3.setText(msg.obj.toString());
break;
case 5:
textView4.setText(msg.obj.toString());
break;
default:
System.out.println("未知输入");
break;
}
super.handleMessage(msg);
}
};
与线程搭配使用
Handler作为主线程和子线程的纽带
也可以将handler对象传给其他进程,以便在其他进程中通过handler给你发送事件;还可以通过handler的延时发送message,可以延时处理一些事务的处理。
Handler相当于一个传递信息的载体(子线程与主线程之间的操作一般都会用到这个),在创建Handler的时候要选择在android.os内的
一般创建完了都会重写handleMessage
handler必须要有的东西
主线程内接受消息的handleMessage,handleMessage这个里面需要写判断msg.what的switch语句,接收消息后更新主线程ui
子线程内必须要有的东西 Message message = Message.obtain();
what用来告诉handleMessage这个东西的别名
obj用来给handleMessage传对象
最后一定要写handler.sendMessage(message);没有这个,handleMessage就无法接受到what,就没有办法执行下一步操作