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

时间:2015-02-13 13:35:07

标签: javascript android android-fragments

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

我的代码就像

 If (broadcastReceiver!=null)
    {
       activity.unregisterReceiver    (broadcastReceiver);
    }

问题是什么?。

1 个答案:

答案 0 :(得分: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);
                }

当您需要该接收器时,您可以将此功能称为接收器。 如果您尝试取消注册接收器,请执行

           if (ReceiverRegistered) 
                {
                    if(BR!=null)
                      {
                        activity.unregisterReceiver(BR);
                        ReceiverRegistered = false;
                      }
                }