Merge "Fix memory leak in ApnSettings-activity"

This commit is contained in:
Wink Saville
2012-08-28 12:01:28 -07:00
committed by android code review

View File

@@ -81,6 +81,7 @@ public class ApnSettings extends PreferenceActivity implements
private RestoreApnUiHandler mRestoreApnUiHandler; private RestoreApnUiHandler mRestoreApnUiHandler;
private RestoreApnProcessHandler mRestoreApnProcessHandler; private RestoreApnProcessHandler mRestoreApnProcessHandler;
private HandlerThread mRestoreDefaultApnThread;
private String mSelectedKey; private String mSelectedKey;
@@ -145,6 +146,15 @@ public class ApnSettings extends PreferenceActivity implements
unregisterReceiver(mMobileStateReceiver); unregisterReceiver(mMobileStateReceiver);
} }
@Override
protected void onDestroy() {
super.onDestroy();
if (mRestoreDefaultApnThread != null) {
mRestoreDefaultApnThread.quit();
}
}
private void fillList() { private void fillList() {
String where = "numeric=\"" String where = "numeric=\""
+ android.os.SystemProperties.get(TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC, "") + android.os.SystemProperties.get(TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC, "")
@@ -273,12 +283,13 @@ public class ApnSettings extends PreferenceActivity implements
mRestoreApnUiHandler = new RestoreApnUiHandler(); mRestoreApnUiHandler = new RestoreApnUiHandler();
} }
if (mRestoreApnProcessHandler == null) { if (mRestoreApnProcessHandler == null ||
HandlerThread restoreDefaultApnThread = new HandlerThread( mRestoreDefaultApnThread == null) {
mRestoreDefaultApnThread = new HandlerThread(
"Restore default APN Handler: Process Thread"); "Restore default APN Handler: Process Thread");
restoreDefaultApnThread.start(); mRestoreDefaultApnThread.start();
mRestoreApnProcessHandler = new RestoreApnProcessHandler( mRestoreApnProcessHandler = new RestoreApnProcessHandler(
restoreDefaultApnThread.getLooper(), mRestoreApnUiHandler); mRestoreDefaultApnThread.getLooper(), mRestoreApnUiHandler);
} }
mRestoreApnProcessHandler mRestoreApnProcessHandler