美文网首页Android学习
android 使用service时遇到 java.lang.

android 使用service时遇到 java.lang.

作者: Eva丶影 | 来源:发表于2017-09-27 13:09 被阅读1898次

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

    相关文章

      网友评论

        本文标题: android 使用service时遇到 java.lang.

        本文链接:https://www.haomeiwen.com/subject/upxuextx.html