summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/ApnSettings.java
diff options
context:
space:
mode:
authorJack Wang <jack.wang@sonyericsson.com>2011-01-27 14:25:22 +0800
committerKenneth Andersson <kenneth.andersson@sonyericsson.com>2012-08-13 15:25:04 +0200
commit481582f4ecf0d1c3c58551b11b667630cfdf032b (patch)
treef4fec62d6959a13b85d37146bd0d8119e9a31cc0 /src/com/android/settings/ApnSettings.java
parent5d72b2726797374e402943182d8132045ed32d3a (diff)
downloadpackages_apps_Settings-481582f4ecf0d1c3c58551b11b667630cfdf032b.zip
packages_apps_Settings-481582f4ecf0d1c3c58551b11b667630cfdf032b.tar.gz
packages_apps_Settings-481582f4ecf0d1c3c58551b11b667630cfdf032b.tar.bz2
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
Diffstat (limited to 'src/com/android/settings/ApnSettings.java')
-rw-r--r--src/com/android/settings/ApnSettings.java21
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