Settings observer fail to unregister.
Zen mode change will call displayPreference() and create a new SettingsObserver, then the old Observer object will have no opportunity to be unregistered. After too much new SettingsObserver creatd in Monkey test, memory might leak. Bug 176206489 Change-Id: I3bccec281da492299bbf755f86df7844a31223c5
This commit is contained in:
@@ -84,7 +84,10 @@ abstract public class AbstractZenModePreferenceController extends
|
||||
mScreen = screen;
|
||||
Preference pref = screen.findPreference(KEY);
|
||||
if (pref != null) {
|
||||
mSettingObserver = new SettingObserver(pref);
|
||||
if (mSettingObserver == null) {
|
||||
mSettingObserver = new SettingObserver();
|
||||
}
|
||||
mSettingObserver.setPreference(pref);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,10 +131,13 @@ abstract public class AbstractZenModePreferenceController extends
|
||||
private final Uri ZEN_MODE_DURATION_URI = Settings.Secure.getUriFor(
|
||||
Settings.Secure.ZEN_DURATION);
|
||||
|
||||
private final Preference mPreference;
|
||||
private Preference mPreference;
|
||||
|
||||
public SettingObserver(Preference preference) {
|
||||
public SettingObserver() {
|
||||
super(new Handler());
|
||||
}
|
||||
|
||||
public void setPreference(Preference preference) {
|
||||
mPreference = preference;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user