diff options
author | Wink Saville <wink@google.com> | 2012-08-28 12:13:59 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-08-28 12:13:59 -0700 |
commit | c5fc6231312b21efb601367bae28d63f9b26ac52 (patch) | |
tree | cca1af56672925512aa578e322d69b66823bd2ee | |
parent | 300457bad289f547430da21e72747e8840840832 (diff) | |
parent | 2d6b52bd38046abe1761cf0cc1f0c415e4a24fef (diff) | |
download | packages_apps_Settings-c5fc6231312b21efb601367bae28d63f9b26ac52.zip packages_apps_Settings-c5fc6231312b21efb601367bae28d63f9b26ac52.tar.gz packages_apps_Settings-c5fc6231312b21efb601367bae28d63f9b26ac52.tar.bz2 |
am 2d6b52bd: Merge "Fix memory leak in ApnSettings-activity"
* commit '2d6b52bd38046abe1761cf0cc1f0c415e4a24fef':
Fix memory leak in ApnSettings-activity
-rw-r--r-- | src/com/android/settings/ApnSettings.java | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/com/android/settings/ApnSettings.java b/src/com/android/settings/ApnSettings.java index 8ea2063..56ee7a9 100644 --- a/src/com/android/settings/ApnSettings.java +++ b/src/com/android/settings/ApnSettings.java @@ -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 |