尝试取消注册广播接收器时的illegalArgument异常

Biv*_*van 2 javascript android android-fragments

我在onDestroy()方法中取消注册广播接收器.即使我正在检查空值.

我的代码就像

 If (broadcastReceiver!=null)
    {
       activity.unregisterReceiver    (broadcastReceiver);
    }
Run Code Online (Sandbox Code Playgroud)

有什么问题?

Bip*_* De 5

您可以维护布尔检查以注册和取消对广播接收器的取消.

我在这里给出一些示例代码.它可能会帮助你.

原来

ReceiverRegistered = false;


 public void registerReceiverFunction() 
        {
            ReceiverRegistered = true;

            BR = new BroadcastReceiver() 
                {
                    @Override
                    public void onReceive(Context arg0, Intent intent) 
                        {
                              activity.unregisterReceiver(BR);
                              ReceiverRegistered = false; 
                        }
                   IntentFilter mFilter = new IntentFilter("updateData");
                   activity.registerReceiver(BR, mFilter);
                }
Run Code Online (Sandbox Code Playgroud)

当您需要该接收器时,您可以调用此功能来接收器.如果你试图取消注册接收器就行了

           if (ReceiverRegistered) 
                {
                    if(BR!=null)
                      {
                        activity.unregisterReceiver(BR);
                        ReceiverRegistered = false;
                      }
                }
Run Code Online (Sandbox Code Playgroud)