码迷,mamicode.com
首页 > 编程语言 > 详细

handler更新ui线程的基本用法

时间:2018-01-11 22:20:56      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:实例   col   case   state   ring   ted   tostring   read   其他   

1.因为费时操作要放子线程,更新UI要放UI线程(主线程),所以子线程和主线程通信,通信的话要用到handler这个东西。

这里讲的比较简单,举2个例子说明

2.使用post的是handler ,使用message的是handler2

public class MainActivity extends AppCompatActivity {

private TextView textView;
private Handler handler = new Handler();

private Handler handler2=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 1:
textView.setText(msg.obj.toString());
}
}
};

Button button;
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textView =findViewById(R.id.textview);

new Thread(){
@Override
public void run() {
Message message = new Message();
//区分标志
message.what=1;
//传参到ui线程
message.obj=123123;
handler2.sendMessage(message);
}
}.start();


new Thread(){
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
textView.setText("fjidfjiijisdf");
}
});
}
}.start();
}


}

3. 实例化handler在其他线程的时候要下面这样写

 private Handler handler = new Handler(Looper.getMainLooper());

 

handler更新ui线程的基本用法

标签:实例   col   case   state   ring   ted   tostring   read   其他   

原文地址:https://www.cnblogs.com/norm/p/8270486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!