Handler(可以取代 异步任务):
作用: 在子线程 和 主线程 之间 发送,接收,处理 消息.
原理: Handler中有
Looper类(循环接收Message消息(相当于Handler的”秘书”),并发送给Handler对象), Looper对象中有 MessageQueue类(Message队列:用来存放Message) ;
Handler的常用方法:
接收消息(Message类)的 方法:
handleMessage(Message msg) //处理返回给 handler的消息
发送消息的 方法:
.sendMessage(Message msg) //发送 消息(发送的 普通消息:基本类型 和 Object引用类型)
.post(Runnable r) //发送 消息(发送的是 线程)
Message类(消息类/它本身即是消息, 是 存放数据的容器/载体 )
存放数据的 不同消息的属性(也就是将 数据类型分类 存放):
.what //存放空(empty) 消息
.arg1 和 .arg2 //存放 整型数据
.obj //存放Object类型 数据
.data //存放 Bundle类型 数据
存放message.setData(data)
/ 接收:
Bundle data = message.getData();