diff options
-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 |