zoukankan      html  css  js  c++  java
  • Handler消息机制的写法

       使用Handler的步骤:

            1.主线程中创建一个Handler
            private Handler handler = new Handler(){
                    public void handleMessage(android.os.Message msg) {
            
                    };
            };

            2.重写handler的handlermessage方法

            3.子线程中创建一个Message对象,将获取的数据绑定给msg
                    Message msg = new Message();
                    //另一种方式:Message msg = Messge.obtain;
                    msg.obj = result;
            4.主线程中的handler对象在子线程中将message发送给主线程
                    handler.sendMessage(msg);
            
            5.主线程中handlermessage方法接受子线程发来的数据,就可以做更新UI的操作。
                    
                
        主线程
            
        //☆☆☆1.在主线程中创建一个Handler对象
        private Handler handler = new Handler(){
            //☆☆☆2.重写handler的handlermessage方法,用来接收子线程中发来的消息
            public void handleMessage(android.os.Message msg) {
                //☆☆☆5.接收子线程发送的数据,处理数据。
                Bitmap bitmap  = (Bitmap) msg.obj;
                //☆☆☆6.当前方法属于主线程可以做UI的更新
                //五.获取服务器返回的内容,显示到textview上
                img_pic.setImageBitmap(bitmap);//设置ImageView的图片内容
            };
        };
        
        子线程

                if(code == 200){
                    //5.获取有效数据,并将获取的流数据解析成String
                            InputStream inputStream = connection.getInputStream();
                            
                            //将一个读取流转换成一个图片 Drawable , Btimap:位图  ?????
                            Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                            
                            
                            //☆☆☆3.子线中创建一个Message对象,为了携带子线程中获取的数据给主线程。
                            Message msg = Message.obtain();//获取一个Message对象,内部实现是:如果之前的Message存在直接返回,不存在创建新的Message返回
                            msg.obj = bitmap;//将获取的数据封装到msg中。
                            //☆☆☆4.使用handler对象将message发送到主线程。
                            handler.sendMessage(msg);
                
                        }

  • 相关阅读:
    docker基础总结
    python基础学习总结
    静默(命令行)安装oracle 11g
    java中如果函数return可能抛出异常怎么办
    Android 开发先驱的博客列表
    栈与队列
    线性表
    算法
    数据结构概论
    iOS开发中实现手势解锁
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/5780720.html
Copyright © 2011-2022 走看看