- 我有一个 asyncTaks 做一些后台操作导致更新 UI
- 用户启动活动,并启动 AsyncTask 来做一些后台工作。
- 用户点击主页键离开应用程序。onSaveInstanceState() 被调用。
- AsyncTask 完成,并尝试根据 onPostexecute() 的结果显示 DialogFragment 或 LoginFragment。
- 因为它在 onSaveInstance() 之后执行 FragmentTransaction。发生 IllegaeStateException。
- 为了处理登录片段,我调用了 commitAllowingStateLoss(); 而不是提交();. 它解决了登录片段的问题
我的问题是我应该为我的对话片段做些什么。
private void networkError(){
NetowrkErrorDialog mErrorDialog = NetowrkErrorDialog.newInstance();
mErrorDialog.setStyle(DialogFragment.STYLE_NO_FRAME, android.R.style.Theme_DeviceDefault_NoActionBar_Fullscreen);
mErrorDialog.setCancelable(false);
if(mErrorDialog.isVisible()==false){
mErrorDialog.show(mMainActivity.getSupportFragmentManager(), "networkerror");
}
}