欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android消息机制解析

程序员文章站 2022-04-19 21:34:40
android消息机制解析,android中只有在uithread中才能更新界面,在长时间的联网请求和其他操作需要在workthread中执行,所以在分线程中联网请求后如果需要更新...

android消息机制解析,android中只有在uithread中才能更新界面,在长时间的联网请求和其他操作需要在workthread中执行,所以在分线程中联网请求后如果需要更新ui界面的时候就需要引入消息机制。

1. 消息机制的引入

android中只有在uithread中才能更新界面,在长时间的联网请求和其他操作需要在workthread中执行,所以在分线程中联网请求后如果需要更新ui界面的时候就需要引入消息机制。

如何实现线程间通信呢? (分线程如何传送数据给主线程)

方式一: thread + runonuithead()

方式二: thread + handler + message

方式三: asynctask (实现了对thread 和 handler的封装,提供了一个线程池)

2.message的使用 :

1).作用

?可理解为线程间通讯的数据单元, 可通过message携带需要的数据

2). 对象的创建

调用message的静态方法obtain()获取message的一个对象。

(message内部维护了一个消息池,对象是从消息池中获取的:可能是已经存在的message对象,也可能是新创建的)

3). 对象的使用

 

int what: 唯一的标识此message对象

int args1/args2:用于存储int型的数据

object obj:用于存储object类型的数据

其它:

long when :此消息要被处理的时间

message next: 如果在一个message中又声明另一个message,整体就构成一个对列的结构

handler target: 处理此message的handler对象

runnable callback: 每个message,都可以设置自己被处理的方式

message spool: 涉及到消息池的使用