Android-handler 简单应用

简介

在Android开发的过程中,我们常常会将耗时的一些操作放在子线程(work thread)中去执行,然后将执行的结果告诉UI线程(main thread),但是UI的更新只能通过Main thread来进行。那么如何将子线程的数据传递给main thread呢?
Android提供了一个消息传递的机制——Handler,可以将子线程的数据传递给主线程,其实,Handler不仅仅能将子线程的数据传递给主线程,它能实现任意两个线程的数据传递。

handler的原理挂个别人写的: https://www.jianshu.com/p/b4d745c7ff7a

应用

初始化:

private Handler handler;

    @Override
    protected void onInitView(Bundle savedInstanceState) {
        handler=new Handler();
}

使用时:

 //变色为找零
Runnable changeColor=new Runnable(){
    @Override
    public void run() {
        try {
            //变色为找零
            Resources resources = getResources();
            Drawable drawable = resources.getDrawable(R.drawable.md_ripple_orange);
            cash_sale_rl.setBackground(drawable);
            cash_sale_tv.setText("找零 ¥");
            totalTradeSaleTv.setText(payzero_sale_tv.getText().toString());
        }catch (Exception e)
        {
            log.error("changeColor--找零框变色异常-err",e);
        }
    }

};

子线程中:

    handler.post(changeColor);

此处评论已关闭