startService和bindService的区别


我们有两种方式启动一个Service,他们对Service 
生命周期的影响是不一样的。 
 
1 通过startService 
   Service会经历 onCreate -> onStartCommand, stopService的时候直接onDestroy 
    如果是调用者(TestServiceHolder)自己直接退出而没有调用stopService的话,Service会一直在后台运行。 
    下次TestServiceHolder再起来可以stopService。 
2 通过bindService    
   Service只会运行onCreate, 这个时候 TestServiceHolder 和TestService绑定在一起 
    TestServiceHolder 退出了,Srevice就会调用onUnbind->onDestroyed所谓绑定在一起就共存亡了。

所以,有时候,我们直接在Application或者主UI中bindServer,应用退出是,自动调用onUnbind->onDestroyed退出Service

其实还有第三种,就是跨进程通信:AIDL。这也可以启动服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值