Service生命周期

Service的生命周期

https://www.jianshu.com/p/8d0cde35eb10

生命周期常用方法在这里插入图片描述

在Service的生命周期里,常用的有:

  • 4个手动调用的方法

    手动调用方法作用
    startService()启动服务
    stopService()关闭服务
    bindService()绑定服务
    unbindService()解绑服务
  • 5个自动调用的方法

    内部自动调用的方法作用
    onCreate()创建服务
    onStartCommand()开始服务
    onDestroy()销毁服务
    onBind()绑定服务
    onUnbind()解绑服务

生命周期方法的具体介绍

  1. startService():启动服务;自动调用的方法:onCreate(),onStartCommand()

    在这里插入图片描述

    注:若一个Service被startService多次启动,那么onCreate()也只会调用一次;整个生命周期的方法里,只有onStartCommand()可以多次调用、其他职能调用一次;onStartCommand()调用次数等于startService调用次数,onStartCommand()必须返回一个整数,描述系统在杀死服务后应该如何继续运行

    a. START_NOT_STICKY:不会重建服务,除非还存在未发送的intent。当服务不再是必须的,并且应用程序能够简单地重启那些未完成的工作时,这是避免服务运行最安全的选项

    b. START_STICKY:重建服务 并且调用onStartService(),但不会再次送入上一个intent,而是用null intent来调用onStartService()。除非还有启动服务的intent未发送完,那么这些剩下的intent会继续发送

    c. START_REDELIVER_INTENT:重建服务并且用上一个已送过的intent调用onStartService()。任何未发送的intent也都会依次送入

  2. stopService():关闭service服务,自动调用的方法:onDestory()

在这里插入图片描述

注:启动且绑定一个service,若在无解绑的前提下调用stopService()是无法停止服务的

  1. bindService():绑定Service服务,自动调用的方法:onCreate(),onBind()

    在这里插入图片描述

  2. unbindService():解绑Service服务,自动调用的方法:onUnbind()、onDestory()

在这里插入图片描述

常见的生命周期使用

  1. 启动服务(只使用startService())

    在这里插入图片描述

  2. 绑定服务(只使用BindService())

    在这里插入图片描述

  3. 先启动再绑定服务(startService、BindService)

    在这里插入图片描述

在这里插入图片描述

注:

关于操作Service

  • startService、stopService只能开启 & 关闭Service,但无法操作Service
  • bindService、unBindService除了绑定Service,还能操作Service

关于Service何时销毁

  • startService开启的Service,调用者退出后Service仍然存在
    Service,还能操作Service

关于Service何时销毁

  • startService开启的Service,调用者退出后Service仍然存在
  • BindService开启的Service,调用者退出后,Service随着调用者退出销毁
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值