混合使用startService与bindService时的情况
1.如果先bindService,再startService:
在bind的Activity退出的时候,Service会执行unBind方法而不执行onDestory方法,因为有startService方法调用过,所以Activity与Service解除绑定后会有一个与调用者没有关连的Service存在
?
2.如果先bindService,再startService,再调用Context.stopService
Service的onDestory方法不会立刻执行,因为有一个与Service绑定的Activity,但是在Activity退出的时候,会执行onDestory,如果要立刻执行stopService,就得先解除绑定
?
---------------------------
把上面的"如果先bindService,再startService"换成"如果先startService,再bindService",结果是一样的
?
?
?
问题:
?
如果在一个Activity的onCreate方法中,
先
bindService(serviceIntent, conn, Context.BIND_AUTO_CREATE);
再startService(serviceIntent);
退出这个Activity时,会执行onUnBind
但是再次进入这个Activity的时候,为什么不执行onBind方法了?只有在这个Service销毁后(执行onDestory),再进这个Activity才会执行onBind
1 楼 dingran 2011-05-25 豆总,您这退出是怎么退出呢?按返回键把Activity弹出任务堆栈?还是直接按HOME键?这样情况可是不一样的啊! 2 楼 lcw1987565 2011-10-26 你有重写!OnUnbind()方法吗?这个方法默认是返回false,也就是当你的组件和一个service先绑定,再解绑。然后再和这个 service绑定时,OnUnbind()返回false,就走onbind(),返回的是true,是走的OnRebind(). 3 楼 erichris 2012-05-23 你好,博主在么。我遇到了和你这篇文章描述的同样的问题。请问你现在清楚问题的原因了吗?求解。 4 楼 lhc966 2012-05-23 erichris 写道你好,博主在么。我遇到了和你这篇文章描述的同样的问题。请问你现在清楚问题的原因了吗?求解。
后来没怎么用过service,所以这个问题后来没再关注过,你现在的程序出现什么问题了吗 5 楼 erichris 2012-06-04 之前遇到和你这篇博文写的内容完全一样的问题,就是:
bindService(serviceIntent, conn, Context.BIND_AUTO_CREATE);
再startService(serviceIntent);
退出这个Activity时,会执行onUnBind
但是再次进入这个Activity的时候,不执行onBind方法了.
后来用来后面那位老兄说的,将onunbind的返回值改为true,再次进入activity时会调用onrebind方法,能达到我的目的了 6 楼 lhc966 2012-06-15 erichris 写道之前遇到和你这篇博文写的内容完全一样的问题,就是:
bindService(serviceIntent, conn, Context.BIND_AUTO_CREATE);
再startService(serviceIntent);
退出这个Activity时,会执行onUnBind
但是再次进入这个Activity的时候,不执行onBind方法了.
后来用来后面那位老兄说的,将onunbind的返回值改为true,再次进入activity时会调用onrebind方法,能达到我的目的了
学习了,多谢