Service的生命周期

本文详细解析了AndroidService的两种启动方式——非绑定式startService和绑定式bindService的生命周期过程,包括各自的启动阶段、结束阶段和对应的方法调用序列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


作为四大组件之一,与Activity类似, Service也有 生命周期,即从开始到结束所经历的生命周期方法调用。(不过要简单的多)

Service有创建,开始,绑定,解绑,销毁等阶段,对应的有相应的生命周期方法。

1. 不同启动方式下的生命周期

不同的启动方式对应了不同的生命周期方法。

1.1 startService(非绑定式)

  • 启动阶段

当启动者(Activity)调用 startService 后,Service会执行:

onCreate(): 只会在首次创建执行一次
onStartCommand(): 每次 startService 都会执行

此时,Service已经启动。

  • 结束阶段

如果要结束Service,有两种方式。

1. 启动者调用stopService

2. service内部调用stopSelf

结束时,会执行生命周期方法:

onDestroy(): 服务销毁前的最后一个方法,可以做一些释放资源等收尾工作。

  • 总结

一个完整的非绑定式Service的生命周期方法调用过程是:

onCreate --> onStartCommand --> onDestroy

1.2 bindService (绑定式)

  • 启动阶段

当启动者(Activity)调用 bindService 后,Service会执行:

onCreate(): 只会在首次创建执行一次
onBind(): 也是只会在首次绑定时执行一次,再次调用 bindService 也不会执行onBind了

此时,Service已经启动并绑定。

  • 结束阶段

结束Service,也有两种方式:

1. 自动结束:当启动者销毁时(Activity onDestroy),会自动解绑Service。当没有绑定者时,该Service会销毁

2. 主动结束:启动者主动调用unbindService方法,解绑Service。当没有绑定者时,该Service会销毁

Service解绑并销毁,会依次执行:

onUnbind(): Service解除绑定
onDestroy(): Service销毁

  • 总结

一个完整的非绑定式Service的生命周期方法调用过程是:

onCreate --> onBind --> onUnbind --> onDestroy

以上就是 Android四大组件之Service的基本内容了,如果文章对你有用,欢迎支持哦,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子林Android

感谢老板,老板大气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值