黑马程序员技术交流社区

标题: service的解绑优化 [打印本页]

作者: yanwenyong    时间: 2016-4-29 22:50
标题: service的解绑优化
关于绑定服务和解绑服务,
其中部分童邪在关闭acvitivy时为了不让程序报错,
因此重写了onStop方法
在这里面调用了解绑方法,
本意是挺好的,我不用手动去解绑了,关闭activity,解绑服务两不误。
但是有时候为了需要,因此添加了一个按钮,用来解绑服务,
这样一来就悲剧了,连续解绑两次,又报错了。


在这里给大家提供一个思路,
第一 、定义一个int类型的成员变量 serviceState  让这个初始值等于0
第二、在绑定服务里面第二个参数对象,其中有个方法ServiceConnection,
在重写这个方法的时候将serviceState的值变成1,
第三、每次解绑服务的时候都对serviceState进行判断,如果值为1.则进行解绑,
同时再将serviceState的值变为0。
这样就完美解决了重复解绑的问题啦

注意:这个方法只是一个不完善的方法,因为根据api说法
只有当service里面的onBind方法的返回值不为null时才会调用ServiceConnection方法,
也就是说 如果onBind方法的返回值为null,那么ServiceConnection这个方法不会运行
那也不会去改变serviceState的值。最终是不会解绑的

诸位还有没有比这个更完善的方法吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2