在onSaveInstanceState之后无法执行此操作

时间:2013-09-02 13:33:24

标签: android android-asynctask

我有两个片段 1.登录片段 2.属性片段

在我的主要活动onResume方法中,我这样称呼

showFragment(LOGIN,FALSE);

public  void showFragment(int fragment_index, boolean addTobackStack) {
    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ftrans = fm.beginTransaction();
    for(int i=0;i<fragments.length;i++){
        if(i==fragment_index){
                ftrans.show(fragments[i]);
        }else{
            ftrans.hide(fragments[i]);
        }
    }
    if(addTobackStack){
        ftrans.addToBackStack(null);

    }
    ftrans.commit();

}

在我的属性片段中,我正在执行asynctask,当任务完成时,我再次调用

showFragment(LOGIN,false);

活动不在后台时工作正常。

然而,当我在属性片段中,我正在执行asynctask,然后进行活动 背景。然后异步任务仍然在后台运行并完成并给出上述错误。有什么方法可以解决这个问题。

我的属性片段代码是

if (v == Properties_Ok) {
            new AsyncTask<Void, Void, Boolean>() {

                @Override
                protected Boolean doInBackground(Void... params) {

                    return ConnectionProvider.checkConnectionProperties();
                }

                @Override
                protected void onPostExecute(Boolean result) {
                    super.onPostExecute(result);
                    if (result == true) {


                            mMainActivity.showFragment(LOGIN,false);



                    } else {

                        networkError();

                    }
                    mProgressDialog.dismiss();
                }

            }.execute();
        }

致电ftrans.commitAllowingStateLoss();而不是ftrans.commit()来解决此问题

0 个答案:

没有答案