绑定服务的注意事项小结

来源:互联网 发布:淘宝信誉评级极好 编辑:程序博客网 时间:2024/06/05 15:26

绑定服务的生命周期

  • 绑定的方式开启服务,如果服务不存在,先执行onCreate在执行onbind
  • 服务的onstart和onstartcommand方法不会被执行
  • 解除绑定服务,先执行onunbind在执行ondetroy
  • 多次绑定服务,服务只会被创建一次,oncreate方法只会被执行一次
  • 多次绑定服务,onBind方法不会被重复调用
  • 在实际开发的时候,如果需要调用服务的方法,就绑定服务,只能绑定一次
  • 服务只可以被解绑一次,如果用同一个conn对象多次解绑,服务和抛出异常

两种开启服务方式比较

  • start的方式开启服务器

    服务一旦开启,长期后台运行,服务和开启者(Activity)没有任何的关系,开启者退出了,服务还是继续在后台长期运行,开启者(Activity)不可以调用服务里面的方法,在系统设置界面可以观察到

  • bind的方式开启服务

    不求同时生,但求同时死,如果开启者(Activity)退出了,服务也会跟者挂掉,
    开启者(Activity)可以间接的利用中间人调用服务里面的方法.在系统设置界面看不到的

服务如果被开启同时被绑定,服务就停不掉了.必须解除绑定才可以停止服务

混合调用服务的生命周期

  • 为了保证服务又能长期后台运行,又能调用到服务里面的方法
  • 采用混合的方式开启服务

按照步骤编写代码:

  1. start的方式开启服务(保证服务长期后台运行)
  2. bind的方式绑定服务(调用服务的方法)
  3. unbind的方式解除绑定服务
  4. stop的方式停止服务
0 0