Fix memory leak in ApnSettings-activity
When destroying the activity, the HandlerThread isnt stopped. This results in that the thread remains, and if you enter/exit the activity multiple times, you will end up with multiple threads and a small memory leak Change-Id: I4779d2625e6002b55066dd034c84d743b9f80ef5
This commit is contained in:
committed by
Kenneth Andersson
parent
5d72b27267
commit
481582f4ec
@@ -81,6 +81,7 @@ public class ApnSettings extends PreferenceActivity implements
|
||||
|
||||
private RestoreApnUiHandler mRestoreApnUiHandler;
|
||||
private RestoreApnProcessHandler mRestoreApnProcessHandler;
|
||||
private HandlerThread mRestoreDefaultApnThread;
|
||||
|
||||
private String mSelectedKey;
|
||||
|
||||
@@ -141,10 +142,19 @@ public class ApnSettings extends PreferenceActivity implements
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
|
||||
|
||||
unregisterReceiver(mMobileStateReceiver);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
if (mRestoreDefaultApnThread != null) {
|
||||
mRestoreDefaultApnThread.quit();
|
||||
}
|
||||
}
|
||||
|
||||
private void fillList() {
|
||||
String where = "numeric=\""
|
||||
+ android.os.SystemProperties.get(TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC, "")
|
||||
@@ -273,12 +283,13 @@ public class ApnSettings extends PreferenceActivity implements
|
||||
mRestoreApnUiHandler = new RestoreApnUiHandler();
|
||||
}
|
||||
|
||||
if (mRestoreApnProcessHandler == null) {
|
||||
HandlerThread restoreDefaultApnThread = new HandlerThread(
|
||||
if (mRestoreApnProcessHandler == null ||
|
||||
mRestoreDefaultApnThread == null) {
|
||||
mRestoreDefaultApnThread = new HandlerThread(
|
||||
"Restore default APN Handler: Process Thread");
|
||||
restoreDefaultApnThread.start();
|
||||
mRestoreDefaultApnThread.start();
|
||||
mRestoreApnProcessHandler = new RestoreApnProcessHandler(
|
||||
restoreDefaultApnThread.getLooper(), mRestoreApnUiHandler);
|
||||
mRestoreDefaultApnThread.getLooper(), mRestoreApnUiHandler);
|
||||
}
|
||||
|
||||
mRestoreApnProcessHandler
|
||||
|
Reference in New Issue
Block a user