Android AIDL实现跨进程通信的示例代码

  

AIDL是Android接口定义语言,它可以用于让某个服务与多个应用程序组件之间进行跨进程通信,从而可以实现多个应用程序共享同一个服务的功能。

  

实现步骤

  

例:用一个程序去访问B程序的MyService.java服务

  
      <李>在B中建立AIDL文件MyAidlService.AIDL,在AIDL文件里写我们的接口方法   <李>在MyService中写AIDL文件定义的方法的具体服务逻辑李   <李>在B的清单文件中,为服务添加行动”com.xyb.servicetest。MyAidlService”用于一个静态来访问服务(这里是因为,如果用动态意图(这个,MyService.class),在一个中没有MyService这个类)   <李>把B的AIDL文件夹拷贝到中,一定要注意包的路径依然为B中的路径李   <李>在中利用静态意图来启动B的服务MyService李   
  

对应步骤详细代码:

  

MyAidlService.AIDL         接口MyAidlService {   int添加(int, int b);   }      

MyService。Java
  

        公开课MyService延伸服务{      MyAidlService。存根mBinder=new MyAidlService.Stub () {   @Override   公共int添加(int, int b)抛出RemoteException {   返回一个+ b;   }   };      @Override   公共内部>   & lt;服务android: name=?MyService”比;   & lt; intent-filter>   & lt;行动android: name=" com.xyb.servicetest.MyAidlService "/比;   & lt;/intent-filter>   & lt;/service>      

4。拷贝AIDL文件夹
  

  

5.访问B的服务

        目的意图=new意图(“com.xyb.servicetest.MyAidlService”);   bindService(意图,连接,BIND_AUTO_CREATE);            私人MyAidlService aidlService;            私人ServiceConnection连接=new ServiceConnection () {   @Override   公共空间onServiceConnected (ComponentName名称、内部服务){   日志。d (“onServiceConnected”、“onServiceConnected”);   aidlService=(MyAidlService) MyAidlService.Stub.asInterface(服务);   尝试{   int=aidlService求和。添加(10、50);//对10和50相加   日志。d (“onServiceConnected总和+ " ");   }抓住RemoteException (e) {   e.printStackTrace ();   }   }         @Override   公共空间onServiceDisconnected (ComponentName名称){         }   };   之前      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Android AIDL实现跨进程通信的示例代码