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 Developers 一. 什么是服务 服务是一个可以在后台执行长时间运行操作而不提...
    NickelFox阅读 564评论 0 3
  • 绑定服务: 绑定服务是客户端-服务器接口中的服务器。绑定服务可让组件(例如 Activity)绑定到服务、发送请求...
    pifoo阅读 1,260评论 0 4
  • Jianwei's blog 首页 分类 关于 归档 标签 巧用Android多进程,微信,微博等主流App都在用...
    justCode_阅读 6,001评论 1 23
  • 什么是Service Service是一个可以在后台长时间执行的应用组件。 Service的启动方式 startS...
    MGLEE阅读 404评论 0 0
  • 我们有时站在阳台透过窗户眺望远方,看着路上的人来人往,车流涌动。静思自己,愁思涌上心头。回忆如墓,淡雅如素,相忘于...
    微光_36c4阅读 194评论 0 1