diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/NetInfoModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/NetInfoModule.java index bff80bf26..463ad17c4 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/NetInfoModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/NetInfoModule.java @@ -106,10 +106,14 @@ public class NetInfoModule extends ReactContextBaseJavaModule IntentFilter filter = new IntentFilter(); filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); getReactApplicationContext().registerReceiver(mConnectivityBroadcastReceiver, filter); + mConnectivityBroadcastReceiver.setRegistered(true); } private void unregisterReceiver() { - getReactApplicationContext().unregisterReceiver(mConnectivityBroadcastReceiver); + if (mConnectivityBroadcastReceiver.isRegistered()) { + getReactApplicationContext().unregisterReceiver(mConnectivityBroadcastReceiver); + mConnectivityBroadcastReceiver.setRegistered(false); + } } private void updateAndSendConnectionType() { @@ -155,6 +159,17 @@ public class NetInfoModule extends ReactContextBaseJavaModule */ private class ConnectivityBroadcastReceiver extends BroadcastReceiver { + //TODO: Remove registered check when source of crash is found. t9846865 + private boolean isRegistered = false; + + public void setRegistered(boolean registered) { + isRegistered = registered; + } + + public boolean isRegistered() { + return isRegistered; + } + @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {