在 APP 开发中,四大组件中的 Activity 和 Service 是其中最常见的,在 Activity 启动 Service 的时候经常用到 bindService() 方法,而这就是建立 Binder 通信的过程。这一篇内容我们就来分析一下这里的 Binder 通信。
一、绑定服务
1、MyService
// 假设我们有一个Service叫MyService
public class MyService extends Service {
// Binder类
private final IBinder binder = new LocalBinder();
// 提供一个方法供Activity调用
public void doSomething() {
// 执行一些操作
}
// 由Activity绑定Service使用
public class LocalBinder extends Binder {
MyService getService() {
// 返回当前Service的实例,允许Activity调用公开的方法
return MyService.this;
}
}
@Override
public IBinder onBind(Intent intent) {
return binder;
}
}
2、MainActivity
public class MainActivity extends AppCompatActivity {
private MyService.LocalBinder binder;
private boolean bound = false;
@