[Wi-Fi] Quit worker thread in WifiNetworkListFragment
Should quit worker thread when a fragment is about to be destroyed. Bug: 145100890 Test: make RunSettingsRoboTests ROBOTEST_FILTER=WifiNetworkListFragmentTest Change-Id: I840750ac4e9601fe553ce219305876581bea7197
This commit is contained in:
@@ -73,7 +73,7 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen
|
||||
private static final long SCAN_INTERVAL_MILLIS = 10_000;
|
||||
|
||||
@VisibleForTesting SavedNetworkTracker mSavedNetworkTracker;
|
||||
private HandlerThread mWorkerThread;
|
||||
@VisibleForTesting HandlerThread mWorkerThread;
|
||||
|
||||
// Container Activity must implement this interface
|
||||
public interface OnChooseNetworkListener {
|
||||
@@ -158,6 +158,13 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen
|
||||
this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
mWorkerThread.quit();
|
||||
|
||||
super.onDestroyView();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
@@ -30,6 +30,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.HandlerThread;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
@@ -139,4 +140,17 @@ public class WifiNetworkListFragmentTest {
|
||||
|
||||
verify(mWifiNetworkListFragment.mOnChooseNetworkListener).onChooseNetwork(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDestroy_quitWorkerThread() {
|
||||
mWifiNetworkListFragment.mWorkerThread = mock(HandlerThread.class);
|
||||
|
||||
try {
|
||||
mWifiNetworkListFragment.onDestroyView();
|
||||
} catch (IllegalArgumentException e) {
|
||||
// Ignore the exception from super class.
|
||||
}
|
||||
|
||||
verify(mWifiNetworkListFragment.mWorkerThread).quit();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user