AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication, IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数。本文简单介绍AIDL的使用。
1.新建IRemoteService.aidl
package com.tang.remoteservicedemo;
interface IRemoteService {
String getInfo();
}
从内容中也可以看出,这东西类似一个接口。既然定义了这么一个玩意,那么我们就要去实现它。
2.新建IService“实现”IRemoteService“接口”
package com.tang.remoteservicedemo;
import java.util.Date;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
public class IService extends Service
{
private IBinder iBinder = new IRemoteService.Stub() {
@Override
public String getInfo() throws RemoteException {
// TODO Auto-generated method stub
return new Date(System.currentTime