安卓Service生命周期,你应该知道的都在这里

如有转载,请申明:

转载至 http://blog.csdn.net/qq_35064774/article/details/52567004


Service是安卓的四大组件之一。它是一个没有界面的组件,且优先级大于后台进程。

了解它的生命周期很有必要。

 

Service启动的分类

 

启动服务: 通过startService启动的服务称为启动服务

绑定启动服务: 通过bindService启动的服务成为绑定启动服务

混个开启服务: 既开启了服务,又绑定了服务。但通常是先开启服务,然后绑定,解绑,关闭。

 

生命周期

 

对于服务来说,有两种启动方式。

 

start方式启动服务:

onCreate: 服务创建时调用

onStartCommand: 服务被调用开启方法时调用

onDestroy: 服务销毁时调用

 

当在代码中执行startService时,如果服务不存在,就会先调用onCreate,然后调用onStartCommand;而如果服务已经存在,则只会调用onStartCommand

当在代码中执行stopService时,就会执行onDestroy

 

需要注意的是,start方式开启的服务与开启者(Activity)无直接联系,也就是当应用退出后,服务还是会继续运行。

 

 

bind方式启动服务:

onCreate: 服务创建时调用

onBind: 服务被绑定时调用

onServiceConnected: 服务连接时调用。该API并不属于Service,而是属于ServiceConnection。而这个接口作为参数在绑定时传递给了Service

onUnbind: 服务被解绑时调用

onDestroy: 服务销毁时调用

 

这种方式的执行顺序大致就是上述顺序方式。

start方式开始的服务不同的是,当绑定的应用退出时,服务也会停止。

 


混合开启服务:

onCreate: 服务创建时调用

onStartCommand: 服务被调用开启方法时调用

onBind: 服务被绑定时调用

onServiceConnected: 服务连接时调用。该API并不属于Service,而是属于ServiceConnection。而这个接口作为参数在绑定时传递给了Service

onUnbind: 服务被解绑时调用

onDestroy: 服务销毁时调用

 

混合开启服务一般是按照上述流程,也就是先开启服务,然后在绑定,在关闭服务之前,解绑服务。这样可以避免一些莫名的问题。

 

混合开启服务的好处在于,既可以实现应用退出后,仍然可以运行服务,在应用运行时,可以绑定服务,调用服务中的方法。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值