Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 避免两次注销表单服务_Java_Android_Android Service - Fatal编程技术网

Java 避免两次注销表单服务

Java 避免两次注销表单服务,java,android,android-service,Java,Android,Android Service,我可以这样做吗: mBoradcastReciver = null; void register(){ if(mBoradcastReciver == null){ mBoradcastReciver = new ... registerReceiver(mBroadcastReceiver, ....); } } void unregister(){ if(mBoradcastReciver != null){ unregisterRecei

我可以这样做吗:

mBoradcastReciver = null;
void register(){
  if(mBoradcastReciver == null){
     mBoradcastReciver = new ...
     registerReceiver(mBroadcastReceiver, ....);
  }
}

void unregister(){
    if(mBoradcastReciver != null){
       unregisterReceiver(mBroadcastReceiver);
       mBoradcastReciver = null;
    }
每次我想调用register()和unregister()方法?
该方法是否存在任何潜在问题?

潜在问题是,如果接收器不为空且未注册,您将获得一个
非法状态异常。因此,要么做一个布尔标志,要么捕获异常。注册接收器时,布尔标志将设置为
true
,然后取消注册时,布尔标志将设置为
false

@user1461568线程始终会导致问题。如果您是,您可能应该避免出现问题。@user1461568如果我的答案有帮助,您可能希望接受答案。如果您有其他相关问题,请随时提问!