/** * Handle network state update on API level < 21. */ private synchronized void handleNetworkStateUpdate() { /* * This code is used to notify listeners only when the network state goes from * connected to disconnected and vice versa * (without duplicate calls, the sequence will be consistent). */ String previousNetworkType = mNetworkType; updateNetworkType(); boolean networkTypeChanged = previousNetworkType == null ? mNetworkType != null : !previousNetworkType.equals(mNetworkType); if (networkTypeChanged) { boolean connected = isNetworkConnected(); if (connected && previousNetworkType != null) { notifyNetworkStateUpdated(false); } notifyNetworkStateUpdated(connected); } }
updateNetworkType(); mConnectivityReceiver = new ConnectivityReceiver(); mContext.registerReceiver(mConnectivityReceiver, getOldIntentFilter());