Service相关的生命周期

方式一的生命周期:

通过startService()打开的Service的生命周期是:

onCreate()-> onStart()-> (运行中)(stopService执行) onDestroy()

方式二的生命周期:

通过bindService()打开的Service的生命周期:

onCreate()->onBind()->{onServiceConnected(ServiceConnection的方法)}(运行中)->(unbindService执行)onUnbind()->onDestroy();

方式三的生命周期:

startService 和bindService二者共同使用:

onCreate()->onStart()->onBind()->{onServiceConnected(ServiceConnection的方法)}(运行中)

unbindService执行)onUnbind()->(再次执行bindService)onRebind()(onUnbind返回true时才会调用)

注意:onUnbind()返回false时,onBind和onUnbind只会被调用一次(onRebind不会被调用但onServiceConnected(ServiceConnection的方法)可以别多次调用;为true时,onRebind和onUnbind会被调用多次(onBind创建时只会执行一次);

onUnbind()返回false时生命周期如下:

onCreate()->onStart()->onBind()->{

返回

(运行中)

(执行unbindService)->onUnbind->(bindService)(无调用)->(onServiceConnected(ServiceConnection的方法被调用)->(执行unbindService)(无调用);

现象解释:

bindService可以调用onBind和onUnbind,也就是说先绑定,再解绑(返回true)。如果绑定了,

但没有成功解绑(返回false);是不允许再次绑定的;onRebind执行的条件也是当其能够成功解绑;

onServiceConnected(ServiceConnection的方法),是不管其有没有解绑的,是可以多次执行的;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值