zoukankan      html  css  js  c++  java
  • handler更新ui线程的基本用法

    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());
  • 相关阅读:
    mysql数据库小常识
    CSP.ac #61乘积求和
    CSP.ac #60
    CSP.ac低仿机器人(T1-1)
    题解:swj社会摇基础第一课
    题解:T103180 しろは的军训列队
    关 于 篮 球
    关 于 自 恋
    题解:T103342 Problem A. 最近公共祖先
    关 于 匀 变 速 直 线 运 动 的 推 论
  • 原文地址:https://www.cnblogs.com/norm/p/8270486.html
Copyright © 2011-2022 走看看