服务与活动的绑定:UNbindService之后,service对象仍然存在而且能用 晕

绑定:

在这里插入图片描述

执行bindService方法:第一个参数为intent对象,第二个参数为serviceconnection实例,第三个参数为标志位:BIND_AUTO_CREATE 表示在活动与服务进行绑定后自动创建服务,这样会执行service的onCreate方法但是不会执行onStartCommand方法。

serviceConnection:

在这里插入图片描述

点击绑定,然后再点击解绑,即先执行bindService再执行unbindservice:
在这里插入图片描述

可以看出来是先执行了onCreate、再执行了onBind,在onBind里面返回了一个IBinder对象的实例给Activity,然后点击unbindservice之后解绑,执行了onDestroy销毁动作

但是!!!!

内个实验四线程的第三个实验,它把Service和Activity进行绑定,指导书的代码是在执行完unbindService(解除绑定)之后把Activity中之前通过bindService–>ServiceConnection–>onServiceConnected获取的Service对象手动置为null了,然后在计算按键的触发事件上写的也是“如果当前这个service对象不null”的话才去计算。但是如果在UNbindService方法之后不去给service对象置null的话,在点击取消绑定之后Service确实执行了onDestroy按说是被销毁了,但是再点击计算按键的时候依然可以进行计算,这个service对象仍然存在,甚至于如果不是通过绑定获得的service对象而是直接随便new一个的话,依然可以执行service中的计算的方法(就像在调用一个类的方法一样),这这。。。只针对这个实验来看,绑定没意义啊

通过bindService–>ServiceConnection–>onServiceConnected获取的Service对象

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

随便new一个service对象:

在这里插入图片描述
在这里插入图片描述

前面这两种可以说效果一样。。。。弄不太懂咋回事
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值