使用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);

            

                    }

Handler消息机制的写法的更多相关文章

  1. 深入理解 Handler 消息机制

    记得很多年前的一次面试中,面试官问了这么一个问题,你在项目中一般如何实现线程切换? 他的本意应该是考察 RxJava 的使用,只是我的答案是 Handler,他也就没有再追问下去了.在早期 Andro ...

  2. Android全面解析之由浅及深Handler消息机制

    前言 很高兴遇见你~ 欢迎阅读我的文章. 关于Handler的博客可谓是俯拾皆是,而这也是一个老生常谈的话题,可见的他非常基础,也非常重要.但很多的博客,却很少有从入门开始介绍,这在我一开始学习的时候 ...

  3. Android消息传递之Handler消息机制

    前言: 无论是现在所做的项目还是以前的项目中,都会遇见线程之间通信.组件之间通信,目前统一采用EventBus来做处理,在总结学习EventBus之前,觉得还是需要学习总结一下最初的实现方式,也算是不 ...

  4. Handler消息机制与Binder IPC机制完全解析

    1.Handler消息机制 序列 文章 0 Android消息机制-Handler(framework篇) 1 Android消息机制-Handler(native篇) 2 Android消息机制-H ...

  5. Handler消息机制实现更新主UI

    如下实现的是简单的更新主UI的方法,用Handler消息机制 将textview的内容每隔一秒实现num++ /* * handler消息机制 * asynctask异步任务 *  * httpcli ...

  6. Android Handler消息机制不完全解析

    1.Handler的作用 Android开发中,我们经常使用Handler进行页面的更新.例如我们需要在一个下载任务完成后,去更新我们的UI效果,因为AndroidUI操作不是线程安全的,也就意味着我 ...

  7. 源码篇——Handler消息机制

    Handler消息机制 Message 消息 Message.obtain() Message msg = new Message() Handler new Handler(){ handlerMe ...

  8. Handler消息机制的一些原理(直接用code讲解)——Android开发

    package com.example.handlertest; import android.os.Bundle; import android.os.Handler; import android ...

  9. Android Handler消息机制源码解析

    好记性不如烂笔头,今天来分析一下Handler的源码实现 Handler机制是Android系统的基础,是多线程之间切换的基础.下面我们分析一下Handler的源码实现. Handler消息机制有4个 ...

随机推荐

  1. CH7511|LT7211|PS8625替代方案 CS5211 设计EDP转LVDS优势方案原理图+PCB板设计

    CH7511|LT7211|PS8625这三款都是专门用于设计EDP转LVDS转接板或者屏转换方案板,CH7511.LT7211.PS8625目前这几款都是出于缺货状态,台湾瑞奇达Capstone 新 ...

  2. C#/.NET之WebAPI(从入门到放弃一)

    1.怎么理解WebApi,他究竟是什么? 关于这一篇,视频学习可参照B站up主:全栈ACE,全栈ACE的个人空间,社区QQ群如下,有什么问题也可加群咨询. 首先使用Visual Studio创建一个新 ...

  3. Linux查看CPU详细信息

    1.查看CPU详细信息 在Linux服务器上查看CPU详细信息: cat /proc/cpuinfo 输出结果: processor : 0 vendor_id : GenuineIntel cpu ...

  4. Ranger-AdminServer安装

    Ranger-AdminServer安装,对应的Ranger版本1.0.0. RangerAdmin安装依赖如下组件: mysql solr IP/机器名 安装软件 运行进程 zdh-245 Rang ...

  5. [ SQLAlchemy ] 经验总结、QA

    1.filter 和 filter_by [ 共同点 ]:查询后,用于过滤数据 [ 不同点 ]: 1.filter:过滤查询后的数据,用SQL表达式 session.query(MyClass).fi ...

  6. Educational Codeforces Round 117 (Rated for Div. 2)

    Educational Codeforces Round 117 (Rated for Div. 2) A. Distance https://codeforces.com/contest/1612/ ...

  7. SRC(不定期更新)

    主域名收集 响应包 Content-Security-Policy-Report-Only

  8. Unity打包安卓项目问题汇总(持续更新)

    1.V1,v2签名问题 安卓11以上--v1签名无法使用: 安卓7以下--v2无法使用: 应用宝不支持没有v1签名的包: AndroidStudio版本2020打签名包时无法勾选v1,v2选项,4.2 ...

  9. node.js在Linux下执行shell命令、.sh脚本

    首先,引入子进程模块 var process = require('child_process'); 执行shell命令 调用该模块暴露出来的方法exec process.exec('shutdown ...

  10. golang中的goroutine

    1. 概念 go中可以并发执行的活动单元称为goroutine当一个go程序启动时,一个执行main function的goroutine会被创建,称为main goroutinego func() ...