[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;
|
private static final long SCAN_INTERVAL_MILLIS = 10_000;
|
||||||
|
|
||||||
@VisibleForTesting SavedNetworkTracker mSavedNetworkTracker;
|
@VisibleForTesting SavedNetworkTracker mSavedNetworkTracker;
|
||||||
private HandlerThread mWorkerThread;
|
@VisibleForTesting HandlerThread mWorkerThread;
|
||||||
|
|
||||||
// Container Activity must implement this interface
|
// Container Activity must implement this interface
|
||||||
public interface OnChooseNetworkListener {
|
public interface OnChooseNetworkListener {
|
||||||
@@ -158,6 +158,13 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen
|
|||||||
this);
|
this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroyView() {
|
||||||
|
mWorkerThread.quit();
|
||||||
|
|
||||||
|
super.onDestroyView();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
@@ -30,6 +30,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.wifi.WifiConfiguration;
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
|
import android.os.HandlerThread;
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceCategory;
|
import androidx.preference.PreferenceCategory;
|
||||||
@@ -139,4 +140,17 @@ public class WifiNetworkListFragmentTest {
|
|||||||
|
|
||||||
verify(mWifiNetworkListFragment.mOnChooseNetworkListener).onChooseNetwork(any());
|
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