//方式一:
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView tv = findViewById(R.id.tv1);
Date date = new Date();
long time = date.getTime();
tv.setText(String.valueOf(time));
}
});
//方式二:使用EventBus(使用前先导入依赖,注册EventBus事件,使用完成后要销毁EventBus事件)
//获取数据的线程,将数据发送给主线程
class Test extends Thread{
@Override
public void run() {
super.run();
MessageEvent c = new CEvent();
c.setMgs("CCCCCCCCCCCCC");
c.setMgsHex(Thread.currentThread().getName());
EventBus.getDefault().post(c);
}
}
//主线程中接收数据
@Subscribe(threadMode = ThreadMode.MAIN,priority=1,sticky=true)
public void handleMessageC(CEvent event) {
String name = Thread.currentThread().getName();
Log.i("EventBusTest", event.getMgsHex());
TextView tv = findViewById(R.id.tv1);
tv.setText(event.getMgs());
}
//方式三:
//线程中调用函数传出数据
class Test extends Thread{
@Override
public void run() {
super.run();
sendMessage(msg);
}
}
//传出数据
private void sendMessage(String msg) {
Message message=new Message();
message.what=0;
Bundle bundle=new Bundle();
bundle.putString("content",msg);
message.setData(bundle);
handler.sendMessage(message);
}
//主线程中展示数据
private Handler handler=new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 0:
String mg = msg.getData().getString("content");
RingToast.show(mg);
TextView tv = findViewById(R.id.tv1);
tv.setText(mg);
break;
}
}
};