Reduce chance of crash when dismissing dialogs asynchronously

* Caught & diagnosed by crash while checking settings
* Also possible in MoveMessageToDialog

Bug: 3412875
Change-Id: Ie78c61cf5ca10ce1eedc25ba2eb97ed0ac5bc615
This commit is contained in:
Andy Stadler 2011-03-15 15:02:48 -07:00
parent 9c795b025e
commit a685d3b019
2 changed files with 5 additions and 4 deletions

View File

@ -140,15 +140,16 @@ public class MoveMessageToDialog extends DialogFragment implements DialogInterfa
}
/**
* Delay-call {@link #dismiss()} using a {@link Handler}. Calling {@link #dismiss()} from
* {@link LoaderManager.LoaderCallbacks#onLoadFinished} is not allowed, so we use it instead.
* Delay-call {@link #dismissAllowingStateLoss()} using a {@link Handler}. Calling
* {@link #dismissAllowingStateLoss()} from {@link LoaderManager.LoaderCallbacks#onLoadFinished}
* is not allowed, so we use it instead.
*/
private void dismissAsync() {
new Handler().post(new Runnable() {
@Override
public void run() {
if (!mDestroyed) {
dismiss();
dismissAllowingStateLoss();
}
}
});

View File

@ -300,7 +300,7 @@ public class AccountCheckSettingsFragment extends Fragment {
getFragmentManager().findFragmentByTag(CheckingDialog.TAG);
}
if (mCheckingDialog != null) {
mCheckingDialog.dismiss();
mCheckingDialog.dismissAllowingStateLoss();
mCheckingDialog = null;
}
}