美文网首页
Service的启动方式

Service的启动方式

作者: 将来是只猴 | 来源:发表于2018-04-19 17:19 被阅读0次

    对service有点了解的朋友肯定都会知道服务有两种启动方式,即startService和bindService。那么这两种服务有什么区别呢?

    startService的特点:

    启动方式:
    在其它组件中通过startService()方法启动。
    停止方式:
    在其它组件中通过stopService()方法停止,或者在service中调用stopSelf()方法停止.
    生命周期:
    onCreate()--->onStartCommand()(onStart()方法已过时) ---> onDestory()
    一旦启动,service即可在后台无限期运行,即使启动service的组件已经被销毁也不受影响,直到其被停止.
    说明:如果服务已经开启,不会重复的执行onCreate(), 而是会调用onStart()和onStartCommand()。
    服务停止的时候调用 onDestory()。服务只会被停止一次。
    与其它组件的通信方式:
    没有提供默认的通信方式,启动service后该service就处于独立运行状态
    使用步骤:
    (1)定义一个继承service的类
    (2)在配置文件Manifest.xml中配置该service
    (3)使用context调用startService(Intent)方法启动该service
    (4)不再使用时,调用stopService(Intent)方法停止该服务

    bindService的特点:

    启动方式:
    在其它组件中通过bindService()方法启动。
    停止方式:
    所有绑定service的组件都被销毁,或者所有绑定service的组件都调用了unbindService方法后会停止
    生命周期:
    onCreate() --->onBind()--->onunbind()--->onDestory()
    一旦启动,只有当所有绑定service的组件都被销毁,或者所有绑定service的组件都调用了unbindService方法后才会停止
    说明:bind的方式开启服务,绑定服务,调用者挂了,服务也会跟着挂掉。绑定者可以调用服务里面的方法
    与其它组件的通信方式:
    可以通过 ServiceConnection进行通信,组件可以与service进行交互、发送请求、获取结果,甚至是利用IPC跨进程执行这些操作
    使用步骤:
    (1)定义一个继承service的类
    (2)在配置文件Manifest.xml中配置该service
    (3)使用context调用bindService(Intent, ServiceConnection, int)方法启动该service
    (4)不再使用时,调用unbindService(ServiceConnection)方法停止该服务

    相关文章

      网友评论

          本文标题:Service的启动方式

          本文链接:https://www.haomeiwen.com/subject/yzzmkftx.html