android 使用service时遇到 java.lang.IllegalArgumentException: Service not registered

      今天在使用service的时候在onDestroy(); 里面进行unbindService(mServiceConnection); 操作,程序直接报了java.lang.IllegalArgumentException: Service not registered的错误。

                                    错误流程如下,开始在xml文件里面定义了两个button

两个button 一个用来打开service 一个用来关闭service

一个按钮是用来bindservice  一个按钮是用来 unbindservice

如果点击顺序  1.bindService ---> 2.unbindService 则不会有任何问题, 但是如果顺序是 1.unbindService  或者 1.bindService -----> 2.unbindService  -----> 3.unbindService . 则会出现java.lang.IllegalArgumentException: Service not registered的错误。

后来发现 原来 bindservice() 这个方法竟然还有返回值,并且是boolean的。所以在unbindService的时候 需要进行非空判断,但是这个判断使用这个boolean来判断 ,所以就修改如下:


首先定义一个值,来判断service是否为空 也是unbindService的判断条件



用定义的值来判断,则可以解决以上问题,但是要记得解绑后恢复初始值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容