AIDL中使用Interface接口回调

本文介绍了如何在AIDL中使用接口回调,让服务端在数据更新时能主动将最新数据传递给所有已连接的客户端。通过在AIDL接口文件中添加注册和注销监听的方法,利用RemoteCallbackList管理跨进程的监听对象,实现异步回调。客户端注册监听并在适当时机注销,服务端则遍历并通知所有监听者。
摘要由CSDN通过智能技术生成

AIDL——Android接口定义语言初步探索中实现了客户端主动调用服务端的方法获取数据,如果服务端的方法是异步执行的,等待结果出来后再通知客户端或者需要服务端主动给客户端传递信息,这个时候就需要使用接口回调了。

这里只实现服务器端主动把数据传递给所有连接的客户端,需求就是当服务端数据增加时,把最新的数据通过接口回调传递给客户端。异步执行需要的接口回调类似。

AIDL——Android接口定义语言初步探索代码基础上修改,不明白的可以先看看这篇

  • 定义接口文件
    在aidl目录的包中新建一个aidl文件,声明一个方法
// IMyAidlInterface.aidl
package com.aidl.server;

// Declare any non-default types here with import statements
import com.aidl.server.InfoBean;//引入定义的aidl文件,使用序列化对象,
interface IMyAidlInterface {
    void onCallbackAllInfo(in List<InfoBean> books);
}
  • 添加注册和注销监听的方法
    在InfoManager.aidl文件中添加两个方法:
 void registerListener(IMyAidlInterface listener);//注册监听
 void unregisterListener(IMyAidlInterface listener);//销毁监听
  • 在服务端实现注册和销毁监听的方法,并实现需求
    定义一个对象管理所有客户端注册的监听对象
private
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值