diff --git a/android/src/main/java/com/reactnativecommunity/netinfo/ConnectivityReceiver.java b/android/src/main/java/com/reactnativecommunity/netinfo/ConnectivityReceiver.java index f0e6db1b..2597f0bb 100644 --- a/android/src/main/java/com/reactnativecommunity/netinfo/ConnectivityReceiver.java +++ b/android/src/main/java/com/reactnativecommunity/netinfo/ConnectivityReceiver.java @@ -34,6 +34,7 @@ public abstract class ConnectivityReceiver { private final WifiManager mWifiManager; private final TelephonyManager mTelephonyManager; private final ReactApplicationContext mReactContext; + public boolean hasListener = false; @Nonnull private ConnectionType mConnectionType = ConnectionType.UNKNOWN; @@ -96,7 +97,9 @@ void updateConnectivity( mConnectionType = connectionType; mCellularGeneration = cellularGeneration; mIsInternetReachable = isInternetReachable; - sendConnectivityChangedEvent(); + if (hasListener) { + sendConnectivityChangedEvent(); + } } } diff --git a/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModule.java b/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModule.java index b41592aa..e079ebbe 100644 --- a/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModule.java +++ b/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModule.java @@ -43,6 +43,7 @@ public void initialize() { public void onCatalystInstanceDestroy() { mAmazonConnectivityChecker.unregister(); mConnectivityReceiver.unregister(); + mConnectivityReceiver.hasListener = false; } @Override @@ -63,10 +64,14 @@ public void onAmazonFireDeviceConnectivityChanged(boolean isConnected) { @ReactMethod public void addListener(String eventName) { // Keep: Required for RN built in Event Emitter Calls. + mConnectivityReceiver.hasListener = true; } @ReactMethod public void removeListeners(Integer count) { // Keep: Required for RN built in Event Emitter Calls. + if (count == 0) { + mConnectivityReceiver.hasListener = false; + } } }