• 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 Group by week
    查询数据库占用磁盘大小
    菜根谭#117
    菜根谭#116
    保护眼睛颜色的RGB数值
    手动释放linux内存和缓存
    菜根谭#115
    菜根谭#114
    菜根谭#113
    spring mvc静态资源文件的引用
  • 原文地址:https://www.cnblogs.com/norm/p/8270486.html
Copyright © 2020-2023  润新知