1. AIDL实现流程
(1)。在package包下写一个文件,以aidl作为后缀,比如IRemoteService.aidl
内容如下:
(2)。编译工程,会自动在gen目录下生产一个java类IRemoteService.java,其有一个内部类Stub,Stub继承Ibinder,
(3)。写一个service类,需要实现onBinder()方法,实现一个Ibinder实例,
onBind方法一定要返回binder对象。
(4)。在Activity中通过bindService方法启动service,bindService对象接受3个参数:Intent,ServiceConnection,flag
bindService实际上就是将服务与调用者联系起来,在调用者中得到服务的实例,重而调用服务的方法。通过aidl,在Activity中得到的service实例一定要是那个接口实现类IRemoteService,通过Stub.asInterface方法获取到实例,就可以调用接口方法。接口方法已经在Service类实现binder对象时实现了方法。