我正在onDestroy()方法中注销广播接收器。即使我正在检查null值。

我的代码就像

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

有什么问题?

最佳答案

您可以维护 bool(boolean) 检查,以注册和取消广播接收机的设置。

我在这里提供一些示例代码。它可能会帮助您。

原来

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;
                      }
                }

08-18 17:40
查看更多