Android中绑定服务开启并且调用服务中方法

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接口,并且重写里面的方法

MyConnection类

接着,在开启绑定服务的时候,我们需要创建这个实例对象;

大概代码

开启的时候我们需要传入intent,ServiceConnection实例对象,以及flag,这里我们用BIND_AUTO_CREATE即可。

另外调用的时候,直接使用Binder调用即可。

解绑直接调用unbindService(myConnection);传入ServiceConnectin对象即可。

上面说的可能比较乱,还是需要自己亲身经历一番才能比较好的了解。

你可能感兴趣的:(Android中绑定服务开启并且调用服务中方法)