服务与活动的绑定: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对象: