OSDN Git Service

Fix ANR caused by registering multiple listeners in DateTimeSettings.onCreate().
authorJim Miller <jaggies@google.com>
Fri, 8 May 2009 01:26:05 +0000 (18:26 -0700)
committerJim Miller <jaggies@google.com>
Fri, 8 May 2009 01:26:05 +0000 (18:26 -0700)
src/com/android/settings/DateTimeSettings.java

index 1b9fecb..d6e85c4 100644 (file)
@@ -109,14 +109,14 @@ public class DateTimeSettings
         mTimePref.setEnabled(!autoEnabled);
         mDatePref.setEnabled(!autoEnabled);
         mTimeZone.setEnabled(!autoEnabled);
-
-        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);        
     }
 
     
     @Override
     protected void onResume() {
         super.onResume();
+        
+        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
 
         ((CheckBoxPreference)mTime24Pref).setChecked(is24Hour());
 
@@ -134,6 +134,7 @@ public class DateTimeSettings
     protected void onPause() {
         super.onPause();
         unregisterReceiver(mIntentReceiver);
+        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
     }
     
     private void updateTimeAndDateDisplay() {