android接口定义语言(AIDL)的使用示例

      我们先来了解一下Aidl是个什么东西!Aidl官方解释是:为了使其他的应用程序也可以访问本应用程序提供的服务,Android使用一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口,这个功能是不是跟我们的Contenprovider的功能很相似?其实目的都一样,就是“分享”,一个是分享数据,一个是分享服务。我们知道在android系统中,进程之间是不能共享内存的,一个App只会启动一个进程,我们的Aidl就完美的解决了进程之间的通信问题。

   接下来,我们用示例描述一下使用Aidl的具体步骤是咋样的(开发工具是Android studio)!

1、写一个类继承Service,重写onbind方法。在服务里写一个方法,这里模拟支付服务。

public voidservice_pay(){

System.out.println("支付服务");

}

2、写一个aidl文件,将视图切换为project视图,在main目录下创建一个aidl文件,名字为PayInterface(这个名字随你).代码如下:

interfacePayInterface {

void pay();

}

3、将项目同步一下,点击androidstudio工具栏上的同步按钮。会在app项目的build-generated--source--

aidl---debug--生成一个PayInterface.java文件。

     4、修改Service的子类,在这个类里建一个内部类继承Stub类。并且在onbind方法里返回该类的对象。

classMyBinder extends PayInterface.Stub{


@Override

public voidpay() throws RemoteException {

//调用服务中的支付服务。

service_pay();

}

}

5:在MainActivity里绑定服务。

1;创建Intent,

2:写一个类MyServiceConnection实现ServiceConnection,实现2个方法。

classMyServiceConnection implements ServiceConnection{

 

@Override

public voidonServiceConnected(ComponentName name, IBinder service) {

//绑定成功。

payInterface= PayInterface.Stub.asInterface(service);

}

@Override

public voidonServiceDisconnected(ComponentName name) {

}

}

3:创建MyServiceConnection对象,绑定服务,

4:调用支付服务,

用payInterface来调用pay方法。

   好了。大致的步骤就是这样,有需要的小伙伴不妨一试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值