0
  1. 我有一个 asyncTaks 做一些后台操作导致更新 UI
  2. 用户启动活动,并启动 AsyncTask 来做一些后台工作。
  3. 用户点击主页键离开应用程序。onSaveInstanceState() 被调用。
  4. AsyncTask 完成,并尝试根据 onPostexecute() 的结果显示 DialogFragment 或 LoginFragment。
  5. 因为它在 onSaveInstance() 之后执行 FragmentTransaction。发生 IllegaeStateException。
  6. 为了处理登录片段,我调用了 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");
    }

}
4

1 回答 1

0

您的 AsyncTask 必须onPause()在活动上调用后立即停止。调用cancel(true)AsyncTask。用户可以返回您的活动并重新开始。

或使用IntentService

于 2013-09-03T05:03:04.033 回答