`
kiddsunhaibo1
  • 浏览: 97009 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

android aidl

阅读更多
android中的进程间的通信很多,下面粗略的讲解一下如何实现AIDL的进程间的通信如下所示:服务器端书写如下新建一个工程,包名:com.test
在该包底下建一个aidl的文件,这里我命名为IService.aidl 在文件中书写一个借口如下:
interface IService
{
String getValue();
}
这时在工程底下gen包中将生成一个IService.java的文件。在com.test的包底下声明一个服务,在类中声明一个类IServiceImpl 继承IService.java中的类Stub实现一个方法getValue(),
在配置文件中注册Service 添加一个Action的过滤如下<action android:name="com.test.IService"/>

客户端书写如下,新建一个客户端的工程在mainactivity中实现一个按钮用于点击获取服务器来的值,将服务器底下gen包中的IService.java文件放到客户端相同的目录下,在mainActivity中声明一个IService对象
在activity中声明一个类继承ServiceConnection实现两个方法,在onServiceConnected的方法中声明IService对象如下:service = IService.Stub.asInterface(arg1);
声明一个Intent的对象Intent intent = new Intent("com.test.IService");这里Intent绑定的对象就是服务器中Service中声明的Action
new一个ServiceConnection对象
绑定服务:bindService(intent,ServiceConnection对象,Context.BIND_AUTO_CREATE)
在按钮的点击事件中获取值IService对象获取getValue这个函数中的值
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics