Handler的作用和用法

1.Handler的作用
handler是android sdk处理异步消息的核心类
因为主线程不能处理耗时操作(连接网络、存储数据…)等,因此有些时候我们就必须要开启一个子线程。然而子线程里面又不能更新UI,所以就有了Handler。关于MessageQueue和Looper,有一篇文章分析的很详细,https://www.baidu.com/link?url=iJWq60iI1egm86up1UMCWBJtBIWkVvts52tmH9AK5pDdBhXx-wfQWMHYWqEejquWjAY0K9qOPdsTskWX_NIJWa&wd=&eqid=9814cd03000958c9000000055c678b43。大家可以参考一下。
2.Handler的用法—handler的使用步骤
[1]在主线程定义一个Handler
[2]使用Handler会重写handler里面的handleMessage()方法

private Handler handler = new Handler(){
     public void handleMessage(Message msg){
         /*
         * 更新UI的逻辑
         * */
     }
  };

[3]拿着主线程创建的handler去子线程发消息(也就是调用handler.sendMessage()方法)

 handler.sendMessage(message);

[4]经过第[3]步之后,handleMessage()方法就会执行,我们就可以在这个方法里面自己写上更新UI的逻辑(以在ImageView控件上更新一张图片为例)

private Handler handler = new Handler(){
       public void handleMessage(Message msg){
           /*
           * 更新UI的逻辑
           * */
           Bitmap bitmap = (Bitmap) msg.obj;
           ivBGOline.setImageBitmap(bitmap);
       }
    };

PS:如果仅仅是更新UI,android提供了一个比较方便的API — runOnUiThread,我们直接使用这个API就可以更新UI了。

 runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            tvTime.setText(str);
                        }
                    });
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值