PS:绑定开启服务生命周期---onCreate- onBind --onDestroy; 注意点击多次解绑就会出现问题,即便你点击绑定多次但是还是只能解绑一次。另外使用服务中的方法,我们不是直接使用的,而是通过获取服务中Binder实例对象,通过这个Binder调用服务方法。
1.首先创建一个类BindService继承Service,在服务里写一个方法methodInMyService(),准备对外提供调用。
2.写一个接口,IMyBinder,里面写一个方法;(主要是通过重写这个方法调用服务里面的方法)。
3.在BindService 类里面在写一个类MyBinder,MyBinder继承Binder类并且实现IMyBinder接口,重写里面的方法。
4.在BindService类里面我们重写onBind(Intent intent)方法,返回我们之前创建的MyBinde对象。
@Override
public IBinder onBind(Intent intent) {
// 返回MyBindder()对象
Log.i(TAG,"BindService-onBind");
return new MyBinder();
}
5.在前面我们MyBinder类里面我们会重写接口实现里面的方法,在这个方法里面调用methodInMyService()即可。
6.使用,首先在Activity里面我们要写一个类MyConnection实现ServiceConnection接口,并且重写里面的方法
接着,在开启绑定服务的时候,我们需要创建这个实例对象;
开启的时候我们需要传入intent,ServiceConnection实例对象,以及flag,这里我们用BIND_AUTO_CREATE即可。
另外调用的时候,直接使用Binder调用即可。
解绑直接调用unbindService(myConnection);传入ServiceConnectin对象即可。
上面说的可能比较乱,还是需要自己亲身经历一番才能比较好的了解。