浅谈Android Aidl 通讯机制
程序员文章站
2024-02-26 19:36:16
服务端:
首先是编写一个aidl文件,注意aidl只支持方法,不能定义静态成员,并且方法也不能有类似public等的修饰符;aidl运行方法有任何类型的参数和返回值,...
服务端:
首先是编写一个aidl文件,注意aidl只支持方法,不能定义静态成员,并且方法也不能有类似public等的修饰符;aidl运行方法有任何类型的参数和返回值,在java的类型中,以下的类型使用时不需要导入包(import),基本数据类型、string、map、list.当然为了避免出错,建议只要使用了,就导入包。
然后在服务端启动一个服务并注册,编写一个任意类实现aidl文件生成的java接口stub!
最后在service里面实例化你的任意类并且在onbind(intent a)方法上面返回你任意类的对象!
客户端:
首先把你在服务端的aidl文件完整的复制过来一份,并且保证包名一样
然后调用bindservice方法绑定你在服务端创建的方法mcontext.bindservice(intent, mserviceconnection, 0);
其中mserviceconnection是重点:
private serviceconnection mserviceconnection = new serviceconnection() { @override public void onserviceconnected(componentname name, ibinder service) {//连接上服务器时调用 mservice = iremoteservice.stub.asinterface(service); } @override public void onservicedisconnected(componentname name) {//没连上调用 mservice = null; } };
其中mservice就是服务端的aidl对象,我们可以通过它来给服务端的方法赋值
其中的传的intent要注意必须提供一个intent-filter来匹配请求是否合法,所以我们在客户端访问服务的时候,还必须传递包含了匹配action的intent哦。
以上内容是小编给大家介绍的android aidl 通讯机制 ,希望对大家有所帮助!
推荐阅读
-
Android中如何利用AIDL机制调用远程服务
-
Android的IPC机制(二)——AIDL实现原理简析
-
Android三种网络通讯方式及Android的网络通讯机制
-
Android三种网络通讯方式及Android的网络通讯机制
-
Android Studio创建AIDL文件并实现进程间通讯实例
-
Android IPC机制之AIDL解析
-
Android——使用AIDL实现进程间通讯简单案例
-
黑马Android76期学习笔记01基础--day08--start/bind开启服务、电话录音,特别广播接收者,bindService/接口调用服务内方法,混合开启服务,进程间通讯,aidl应用场景
-
Android Studio创建AIDL文件并实现进程间通讯实例
-
浅谈Android的Message机制 androidMessagejava