Service 有哪些启动方法,有什么区别,怎样停用 Service?

本文介绍了Android中启动Service的两种方式:Context.startService()和Context.bindService()的区别。前者会在后台持续运行直到被显式停止,后者则与调用者绑定,调用者退出时Service也会退出。

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

两种启动 Service 的方式 Context.startService() 和 Context.bindService()。 区别 为 
Context.startService():Service 会经历 onCreate -> onStart(如果 Service 还没有运行, 则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(), 所以一个 Service 的 onStart 方法可能会重复调用多次 ); stopService 的时候直接 onDestroy,如果是调用者自己直接退出而没有调用 stopService 的话,Service 会一直在后 台运行。该 Service 的调用者再启动起来后可以通过 stopService 关闭 Service  


 Context.bindService():Service 会经历 onCreate() -> onBind(),onBind 将返回给客户端 一个 IBind 接口实例,IBind 允许客户端回调服务的方法,比如得到 Service 运行的状态或其 他操作。这个时候把调用者(Context,例如 Activity)会和 Service 绑定在一起,Context 退出了,Srevice 就会调用 onUnbind -> onDestroyed 相应退出,所谓绑定在一起就共存亡 了 。

 停用 service 使用 context.stopService()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值