顺利生成成功后,我们再来编写一个AIDL 服务类,代码如下:
package com.aidl.test;
import java.util.HashMap;
import java.util.Map;
import Android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
public class MyService extends Service {
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return new MyServiceimpl();
}
public class MyServiceimpl extends IMyService.Stub {
@Override
public Student getStudent() throws RemoteException {
// TODO Auto-generated method stub
Student st = new Student();
st.setAge(18);
st.setName("terry");
return st;
}
@Override
public Map getMap(String testClass, Student student)
throws RemoteException {
// TODO Auto-generated method stub
Map<String, Object> map = new HashMap<String, Object>();
map.put("class", "五年级");
map.put("age", student.getAge());
map.put("name", student.getName());
return map;
}
}
}
如上代码,MyService 服务类有一个子类并继承自我们上面生成的*.java 文件重写其中我们在*.aidl 中声明的两个接口方法,实现了其功能。上面IBinder 必须返回此服务类的子类对象,否则客户端将无法获得服务对象。
最后,即然有服务的操作,那么就得在manifest文件中注册服务类,代码如下:
<service android:name=".MyService">
<intent-filter>
<action android:name="com.aidl.test.IMyService"></action>
</intent-filter>
</service>
至此,服务端就己经开发完成了,下面接着开发客启端。