安卓AIDl怎么创建
时间: 2023-11-17 18:56:07 浏览: 31
要创建一个安卓AIDL,需要按照以下步骤进行:
1. 创建一个AIDL文件,定义接口方法和数据类型。
2. 在服务端实现AIDL接口。
3. 在客户端绑定服务端,并调用AIDL接口。
以下是一个简单的例子:
1. 创建AIDL文件,例如IMyAidlService.aidl:
```
interface IMyAidlService {
int add(int a, int b);
}
```
2. 在服务端实现AIDL接口,例如MyAidlService.java:
```
public class MyAidlService extends Service {
private final IMyAidlService.Stub mBinder = new IMyAidlService.Stub() {
@Override
public int add(int a, int b) throws RemoteException {
return a + b;
}
};
@Nullable
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
}
```
3. 在客户端绑定服务端,并调用AIDL接口,例如MainActivity.java:
```
public class MainActivity extends AppCompatActivity {
private IMyAidlService mService;
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
mService = IMyAidlService.Stub.asInterface(iBinder);
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
mService = null;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.example.myaidlservice", "com.example.myaidlservice.MyAidlService"));
bindService(intent, mConnection, BIND_AUTO_CREATE);
int result = mService.add(1, 2);
Log.d("MainActivity", "result: " + result);
}
@Override
protected void onDestroy() {
super.onDestroy();
unbindService(mConnection);
}
}
```