diff --git a/wifi/java/android/net/wifi/WifiStateTracker.java b/wifi/java/android/net/wifi/WifiStateTracker.java index 5540174680758..27e6a72ec977c 100644 --- a/wifi/java/android/net/wifi/WifiStateTracker.java +++ b/wifi/java/android/net/wifi/WifiStateTracker.java @@ -933,10 +933,8 @@ public class WifiStateTracker extends NetworkStateTracker { resetConnections(true); } // When supplicant dies, kill the DHCP thread - if (mDhcpTarget != null) { - mDhcpTarget.getLooper().quit(); - mDhcpTarget = null; - } + mDhcpTarget.getLooper().quit(); + mContext.removeStickyBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION)); if (ActivityManagerNative.isSystemReady()) { intent = new Intent(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION); @@ -1407,10 +1405,9 @@ public class WifiStateTracker extends NetworkStateTracker { NetworkUtils.resetConnections(mInterfaceName); // Stop DHCP - if (mDhcpTarget != null) { - mDhcpTarget.setCancelCallback(true); - mDhcpTarget.removeMessages(EVENT_DHCP_START); - } + mDhcpTarget.setCancelCallback(true); + mDhcpTarget.removeMessages(EVENT_DHCP_START); + if (!NetworkUtils.stopDhcp(mInterfaceName)) { Log.e(TAG, "Could not stop DHCP"); }