天天看点

android aidl空指针,android Aidl进程间通讯解决空指针异常问题

1,服务端 首先在src下建立一个my.test.service包,在包下建立一个*.aidl文件(跟接口相类似,但是没有修饰符) android的aidl工具会自动根据aidl文件生成对应的java类

android aidl空指针,android Aidl进程间通讯解决空指针异常问题

2,接下来定义一个service服务

android aidl空指针,android Aidl进程间通讯解决空指针异常问题

3 ,在服务器端的manifest.xml中注册service

android aidl空指针,android Aidl进程间通讯解决空指针异常问题

服务器端到此告一段落

接下来是客户端调用服务器端的方法

1,把服务器端的aidl文件连同包一起拷贝到客户端的src下

2,定义布局文件

android aidl空指针,android Aidl进程间通讯解决空指针异常问题

3,在客户端的mainactivity的java类中

定义一个成员变量 flag 默认为false ,定义一个ServiceConnection 的实例对象

public ServiceConnection connect=new ServiceConnection(){

@Override

public void onServiceConnected(ComponentName name, IBinder service) {

bookQuery = IBook.Stub.asInterface(service);  //该方法是处理client与service 连接时调用

flag=true;     //当连接成功是修改flag为true  (解决nullpoint异常的)

}

@Override

public void onServiceDisconnected(ComponentName name) {

bookQuery = null;

}

在按钮的点击事件中 加入以下判断

android aidl空指针,android Aidl进程间通讯解决空指针异常问题
android aidl空指针,android Aidl进程间通讯解决空指针异常问题

当flag为true时才去调用 服务器端的方法

本人第一次写博客,写的不好还请见谅,如有问题大家可以提出一起讨论