版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。——————————————————————–史上最强面试题————————————————————————————-
AIDL1、 要使用AIDL的前提的条件我们要只知道它是干什么的? #AIDL 也就是在Android中定义的一个语言,他是进行进程间通讯的一种实现方式,通过定义AIDL接口,可以实现进程间通讯机制 2、 要知道它的使用步骤,前提条件?? #需求:比如现在有2个进程需要通信,那么他们是怎么进行通讯,使用步骤是什么??一个A,一个是B,B要用A里面的服务; 1)、首先在A中写一个服务,在服务里面定义一个方法进行暴露出去 ; 2)、刚刚我们说了要将这个方法暴露出去那么怎么暴露出去,现在就要用到AIDL来实现进程间通讯的机制了 ; 3)、定义一个接口.把要暴露的方法定义在接口中,不要有public之类的修饰符,不然会报错!,然后把这个接口的后缀名改为aidl格式 ;系统会自动在gen生成二个文件其中有一个是以接口名字.java命名的 4)、在A服务中定义一个中间人对象,写一个类继承Stub(实现接口它的本身已经已经实现了我们AIDL接口语言)实现暴露出去的方法. 5)、现在B中想要调用A中的服务,那么就可以通过我们刚刚写的AIDL来实现2个进程间的通信,把A中的AIDLCody到B的SRC目录下 6)、通过BindService绑定到A中的服务,然后在bindService里面创一个服务连接成功的接口, 7)、写一个类实现ServiceConnection,里面有连接成功和失败的方法,我们现在就可以在连接成功的时候通过Stub这个对象里面的asInterface这个方法可以获取到中间人对象, 8)、现在有中间人这个对象你就可以对A里面任意操作了,因为已经建立起关系了;
Handler