Android学习

android 使用service时遇到 java.lang.

2017-09-27  本文已影响1898人  Eva丶影

      今天在使用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的判断条件 用定义的值来判断,则可以解决以上问题,但是要记得解绑后恢复初始值
上一篇下一篇

猜你喜欢

热点阅读