AIDL基本使用流程

本文介绍了AIDL的基本使用流程,包括服务端和客户端的创建步骤。强调了build.gradle中包名与AIDL包名的一致性,以及客户端连接服务端时需要注意的包名匹配问题。通过示例代码展示了服务端的AIDL接口定义、Service实现,以及客户端的AIDL接口引用、Service绑定过程。
摘要由CSDN通过智能技术生成

前言:最近在写AIDL跨进程通讯,遇到一个问题,点击事件后,总是为空, 通过查找代码发现在客户端的连接未成功,问题出现在包名存在差异。所以包名要引起注意!

实现分为两大步骤:

  • 创建服务端
  • 创建客户端

注意点:build.gradle里的包明必须和AIDL的包名相同
      服务端为:

       1、创建服务端的AIDL定义想要的方法
       2、在服务端写一个Service服务
       3、在Service里创建一个内部类继承IMyAidlInterface.Stub
       4、在清单文件中注册Service

     客户端为:

       1、让服务端提供(复制)一份服务端的AIDL的接口及包名拷贝到客户端
       2、在Activity里去绑定(连接)Service,并启动(再声明必须保证包名和AIDL包名一致)
       3、拿到绑定服务成功后的实例,去做相关的操作

服务端整体代码如下:

/**
*1、实现AIDL接口,并定义方法
*/
interface IMyAidlInterface {
   
    /**
     * Demonstrates some basic types that you can use as parameters
     * and return values in AIDL.
     */
//    void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,
//            double aDouble, String aString);
    String getName();
}
/**
*  2、继承Service,绑定AIDL,再创建一个内部类 继承IMyAidlInterface.Stub 实现方法
*/
public class MyServer extends Service {
   
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
   
        return  new MyBinder();

    }

    class MyBinder extends IMyAidlInterface.Stub {
   

        @Override
        public String 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值