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);
                
                        }

  • 相关阅读:
    Unity C# 反编译
    java finalize方法总结、GC执行finalize的过程
    Android性能调优篇之探索垃圾回收机制
    深入理解JVM(一)——JVM内存模型
    Android性能调优篇之探索JVM内存分配
    HashMap实现原理分析
    [干货]2017已来,最全面试总结——这些Android面试题你一定需要
    2017年最全的30个Android面试题,你将如何回答?
    Android2017进阶知识点、面试题及答案(精选版)
    Android2017最新面试题(3-5年经验个人面试经历)
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/5780720.html
Copyright © 2011-2022 走看看