Android 常用组件通信组件| 青训营笔记
这是我参与「第四届青训营 」笔记创作活动的第五天
Android通信组件
| Android通信组件 | 说明 | |
|---|---|---|
| 1 | Handler | 线程通信 |
| 2 | Binder | 进程通信 |
1. Handler
Handler主要用于异步消息的处理: 有点类似辅助类,封装了消息投递、消息处理等接口。当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。
Handler基本用法
-
创建:新建Handler,实现handleMessage(Message)
-
构造Message: what / setData()
-
发送:子线程调用Handler.sendMessage(Message)发送Message
-
处理:在Handler的handleMessage(Message msg)主线程更新Ul
Handler核心原理
2. Binder
Android 设计了一个轻量级的进程间通信机制,也称 远程调用机制,Binder 是这个机制中的 远程对象 的基础类。 Binder是Android提供的一套进程间通信框架。
Binder 基本用法
整个流程可以分为两个部分来看,一个是Binder的服务端,一个是Binder的客户端。
服务端
- 定义一个AIDL文件
- 实现描述的接口,编写service
- 如果有实体类,需要提供实体类(jar包形式)
客户端
- 拿到AIDL文件
- 绑定服务,获得接口持有对象