首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

混同使用startService与bindService时的情况

2012-08-22 
混合使用startService与bindService时的情况1.如果先bindService,再startService:在bind的Activity退出的

混合使用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方法,能达到我的目的了
学习了,多谢

热点排行