文档章节

Handler(下)——Mars Andoird开发视频第二季第八集(重)

周田
 周田
发布于 2015/08/24 18:57
字数 339
阅读 38
收藏 3

主线程向工作线程发送消息

1. 在工作线程中准备Looper对象

2. 在工作线程中实例化Handler对象

3. 在主线程中发送消息

例子:

实现点击按钮,发送消息对象;在工作线程中接收处理消息对象。

  • WokerThread 类
准备Looper对象,并生成Handler对象

· 可以在工作线程里,直接写Handler匿名内部类来实现handleMessage方法;

· 也可以在外面写个内部类实现Handler,然后在这里实例化。

这里使用后者

	class WorkerThread extends Thread {
		public void run() {
			Looper.prepare();
			handler = new MyHandler();
			Looper.loop();
//调用looper的loop方法之后,Looper将不断从消息队列中取出消息对象
//然后调用handler的handleMessage方法处理消息对象
//如果没有消息对象,则线程阻塞
		}
	}

  • 在onCreate方法中启动这个工作线程
new WorkerThread().start();
  • 继承Hanlder的内部类:
	class MyHandler extends Handler {
		public void handleMessage(Message msg) {
			super.handleMessage(msg);
			System.out.println("handleMessage方法,当前:" + Thread.currentThread().getName() + " 接收到消息");
			System.out.println("收到的数据为:" + msg.obj);
		}
	}
  • 创建消息并发送出去

按钮监听:

	class ButtonOnClickListener implements OnClickListener {
		public void onClick(View v) {
			System.out.println("当前为:" + Thread.currentThread().getName() + "Thread---发送消息");
			Message msg = handler.obtainMessage();
			String s = "Hello";
			System.out.println("发送的数据为:" + s);
			msg.obj = s;
			handler.sendMessage(msg);
		}
	}

输入图片说明

© 著作权归作者所有

周田
粉丝 4
博文 122
码字总数 22818
作品 0
德阳
私信 提问
Handler(上)——Mars Andoird开发视频第二季第六集(重)

通过Handler实现线程间通信 handler、Looper、Message Queue(消息队列)的重要价值就是实现主线程与工作线程之间的通信 实现:将工作线程中的数据通过消息传递到主线程中。 例子: 点击按钮...

周田
2015/08/24
24
0
Handler(一)——Mars Andoird开发视频第二季第六集(重)

什么是Handler handler就是消息处理器; Handler、Looper和MessageQueue(消息队列)三者实现了安卓中最重要的消息传递、处理机制。 2. Handler、Looper和MessageQueue的基本原理 Handler:负...

周田
2015/08/24
39
3
失败,再起,重试:一款独立游戏背后的故事

曾于2013年1月通过绿光渠道登陆Steam平台的独立游戏《没空解释》(No Time To Explain)于稍早时候登陆Xbox One并以重制版形式来到Steam,对于这样一款上架已有两年的游戏来说以及背后的游戏...

oschina
2015/09/15
3.6K
14
微信小程序视频教程

微信小程序视频教程,微信小程序项目实战,微信小程序基础入门教程 本文出自 “php ecshop 二次开发” 博客,请务必保留此出处http://phpecshop.blog.51cto.com/6296699/1862940 NideShop微信小...

ch10mmt
2016/10/18
0
0
Intent对象初步——Mars Android开发视频之第二季第四集(重)

Intent对象的基本概念 Intent是安卓应用程序组件之一 Intent对象在安卓系统当中表示一种意图 Intent当中最重要的内容是action与data 2. Intent对象的基本使用方法 2.1 从一个Activity跳转到另...

周田
2015/08/23
43
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
5
0
用好项目管理工具,人人都可以成为项目经理

现在市面上的项目管理工具越来越多了,但是大多数都是一些协同工具或轻量项目管理工具。如果是多团队、跨部门使用或者企业级的项目管理,从管理思想到工具运用,需要适应企业的业务流程体系,...

cs平台
昨天
12
0
只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
70
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部