Stability fixes for PreferenceFragments.

Unregister the click listener as early as possible, so that clicks
don't get delivered after the activity is detached.

Bug: 4599586

This should also fix: 4603030, 4601105, 4598715, 4598712.

Change-Id: I7bcff719bed14ea61b482bd6d29ae1fa5e322e41
This commit is contained in:
Amith Yamasani
2011-06-14 15:07:49 -07:00
parent 700a1f2571
commit c56fc753e2

View File

@@ -145,7 +145,6 @@ public abstract class PreferenceFragment extends Fragment implements
super.onCreate(savedInstanceState);
mPreferenceManager = new PreferenceManager(getActivity(), FIRST_REQUEST_CODE);
mPreferenceManager.setFragment(this);
mPreferenceManager.setOnPreferenceTreeClickListener(this);
}
@Override
@@ -177,10 +176,17 @@ public abstract class PreferenceFragment extends Fragment implements
}
}
@Override
public void onStart() {
super.onStart();
mPreferenceManager.setOnPreferenceTreeClickListener(this);
}
@Override
public void onStop() {
super.onStop();
mPreferenceManager.dispatchActivityStop();
mPreferenceManager.setOnPreferenceTreeClickListener(null);
}
@Override
@@ -195,7 +201,6 @@ public abstract class PreferenceFragment extends Fragment implements
public void onDestroy() {
super.onDestroy();
mPreferenceManager.dispatchActivityDestroy();
mPreferenceManager.setOnPreferenceTreeClickListener(null);
}
@Override