Android中的aidl接口及案例说明

目录

一、什么是AIDL

二、AIDL语法规格

三、AIDL实例

客户端:

服务端:


一、什么是AIDL

AIDL,即 Android Interface Definition Language,用于android不同进程间通信接口。同一个应用里面还是建议用正常接口实现功能即可。

官方说明:Android 接口定义语言 (AIDL)  |  Background work  |  Android Developersicon-default.png?t=N7T8https://developer.android.google.cn/develop/background-work/services/aidl?hl=zh-cn

二、AIDL语法规格

.aidl接口文件在src下和java文件夹并列,如下图:

创建aild,在src下右键,创建AIDL文件即可。

AIDL定义规则:

注意:定义aidl接口以后应该先build以下项目,build会根据aidl接口生成对应的接口文件和实现Binder的实现类,即接口.Stub,这样才能在调用处访问到接口中的方法。

详细更多的传递对象类型可参考上述官方地址中的说明。

三、AIDL实例

案例说明:模拟一个客户端和服务端,客户端调用aidl接口中的方法,请求到服务端,服务端拉起一个页面,点击确定以后返回结果给客户端。

客户端:

首先声明,客户端和服务端的aidl接口是一致的,包括包名。

定义两个aidl接口,一个是接收结果回调,一个是请求方法。

package com.example.paydemo;

interface ThirdPayResult {
  void onPaySuccess();
  void onPayFailed(in int errorCode,in String message);
}
package com.example.paydemo;
import com.example.paydemo.ThirdPayResult;

interface ThirdPayAction {
    void requestPay(String orderInfo,float money,ThirdPayResult callback);
}

客户端activity

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "YY_MainActivity";
    private boolean bind = false;
    private MyServiceConnection mServiceConnection;
    private ThirdPayAction thirdPayAction;
    private MyHandler mMyHandler;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setCo
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值