Android Binder组合ContentProvider跨进程调用

本文介绍了如何使用MatrixCursor构建数据,并通过ContentProvider和Binder在Android中实现跨进程通信。服务端通过AIDL定义接口,实现IMyAidlInterface,ContentProvider返回一个包含Binder对象的BinderCursor,允许客户端进行远程调用。
摘要由CSDN通过智能技术生成

MatrixCursor 的用法如下:

  1. 首先创建一个字符数组,字符数组的值对应着表的字段:

val COLUMN_NAME = arrayOf(“_id”, “name”, “age”)

  1. 利用MatrixCursor的构造方法,构造一个MatrixCursor,传入的参数即是步骤1中创建的字段数组:

matrixCursor = MatrixCursor(COLUMN_NAME)

  1. 通过matrixCursor的addRow方法添加一行值,相当于向数据库中插入一条记录:

matrixCursor?.addRow(arrayOf(1, “hearing”, 24))
// 也可以通过构造一个MatrixCursor.RowBuilder来实现
matrixCursor?.newRow()?.add(2)?.add(“hhh”)?.add(22)

通过上面三步即可完成 MatrixCursor 的构造,从 MatrixCursor 中取出数据的过程与 Cursor 相同。

接下来通过一个实例来看看怎么具体地借助 ContentProvider 和 Binder 来进行便捷的跨进程通信。

Server进程

服务端接口定义

在服务端进程或者服务端 App 中,定义 AIDL 接口文件:

interface IMyAidlInterface {
int getCount();
}

make 之后实现接口:

class CountServiceImpl : IMyAidlInterface.Stub() {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值