在 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;}}@Overridepublic IBinder onBind(Intent intent) {return binder;}
}
2、MainActivity
public class MainActivity extends AppCompatActivity {private MyService.LocalBinder binder;private boolean bound = false;@