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);
}
Handler消息机制的写法的更多相关文章
- 深入理解 Handler 消息机制
记得很多年前的一次面试中,面试官问了这么一个问题,你在项目中一般如何实现线程切换? 他的本意应该是考察 RxJava 的使用,只是我的答案是 Handler,他也就没有再追问下去了.在早期 Andro ...
- Android全面解析之由浅及深Handler消息机制
前言 很高兴遇见你~ 欢迎阅读我的文章. 关于Handler的博客可谓是俯拾皆是,而这也是一个老生常谈的话题,可见的他非常基础,也非常重要.但很多的博客,却很少有从入门开始介绍,这在我一开始学习的时候 ...
- Android消息传递之Handler消息机制
前言: 无论是现在所做的项目还是以前的项目中,都会遇见线程之间通信.组件之间通信,目前统一采用EventBus来做处理,在总结学习EventBus之前,觉得还是需要学习总结一下最初的实现方式,也算是不 ...
- Handler消息机制与Binder IPC机制完全解析
1.Handler消息机制 序列 文章 0 Android消息机制-Handler(framework篇) 1 Android消息机制-Handler(native篇) 2 Android消息机制-H ...
- Handler消息机制实现更新主UI
如下实现的是简单的更新主UI的方法,用Handler消息机制 将textview的内容每隔一秒实现num++ /* * handler消息机制 * asynctask异步任务 * * httpcli ...
- Android Handler消息机制不完全解析
1.Handler的作用 Android开发中,我们经常使用Handler进行页面的更新.例如我们需要在一个下载任务完成后,去更新我们的UI效果,因为AndroidUI操作不是线程安全的,也就意味着我 ...
- 源码篇——Handler消息机制
Handler消息机制 Message 消息 Message.obtain() Message msg = new Message() Handler new Handler(){ handlerMe ...
- Handler消息机制的一些原理(直接用code讲解)——Android开发
package com.example.handlertest; import android.os.Bundle; import android.os.Handler; import android ...
- Android Handler消息机制源码解析
好记性不如烂笔头,今天来分析一下Handler的源码实现 Handler机制是Android系统的基础,是多线程之间切换的基础.下面我们分析一下Handler的源码实现. Handler消息机制有4个 ...
随机推荐
- WPF使用字体图标
首先我们要有字体文件,可以去阿里巴巴矢量图标库下载,下载解压后可以看到如下文件: 其中,iconfont.ttf就是字体文件,我们将该文件引入到自己的项目中,将iconfont.ttf文件的属性中&q ...
- Swoole 中使用异步任务
执行异步任务 (Task) # server.php $serv = new Swoole\Server("127.0.0.1", 9501); // 设置异步任务的工作进程数量 ...
- 初识python: 递归函数
定义: 在函数内,可以调用其他函数,如果一个函数在内部调用自己,返回值中包含函数名,这个函数就是递归函数. 特性: 1.必须要有明确的结束条件: 2.每进入更深一层递归时,问题规模相对上次递归都应该有 ...
- js箭头函数 的 (e) => { } 写法笔记
1. (e) => {} 是ES 6 新语法,默认是Es 5.1,因此在这里设置一下就不会提示红色下划线了 2.使用: (e) => {} , 其实就是function (e){} 的缩 ...
- 你不得不了解的Python3.x新特性
从 3.0 到 3.8,Python 3 已经更新了一波又一波,但似乎我们用起来和 2.7 没有太大区别?以前该怎么写 2.7 的代码现在就怎么写,只不过少数表达方式变了而已.在这篇文章中,作者介绍了 ...
- Jupyter常用配置
一 安装 pip install --upgrade jupyterthemes 二 设置主题 #查看主题列表 jt -l #设置主题并打开工具栏 jt -t chesterish -T 三 设置列 ...
- vue爬坑之路(axios 封装篇)
第一步还是先下载axios cnpm install axios -S第二步建立一个htttp.js import axios from 'axios'; import { Message } fro ...
- 使用.NET 6开发TodoList应用(25)——实现RefreshToken
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在上一篇文章使用.NET 6开发TodoList应用(24)--实现基于JWT的Identity功能中,我们演示了如何使用.N ...
- x86-3-段式管理(segmentation)
x86-3-段式管理(segmentation) 3.1 段式管理概述: 从8086CPU开始,为了让程序在内存中能自由浮动而又不影响它的正常执行,CPU将内存划分成逻辑上的段来给程序使用. x86继 ...
- 《挑战程序设计竞赛》1.6.2-POJ的题目Ants
#include <stdio.h> #define max(a, b) (((a) > (b)) ? (a) : (b)) #define min(a, b) (((a) < ...