Android 删除并提交片段,但不删除它';它仍然在getSupportFragment管理器中

Android 删除并提交片段,但不删除它';它仍然在getSupportFragment管理器中,android,fragment,commit,Android,Fragment,Commit,有没有想过为什么碎片没有被移除?这是从带有retaininstance(true)的“AsyncTask”片段调用的接口方法。在remove mTaskFragment的测试中,该值不等于null,因此将打印日志行 @Override public void onPostExecute(boolean success, String result, String message) { Log.d(TAG, "onPostExecute()"); //Remove the F

有没有想过为什么碎片没有被移除?这是从带有retaininstance(true)的“AsyncTask”片段调用的接口方法。在remove mTaskFragment的测试中,该值不等于null,因此将打印日志行

@Override
public void onPostExecute(boolean success, String result, String message) {

    Log.d(TAG, "onPostExecute()");


    //Remove the Fragment if its still there
    FragmentManager fm = getSupportFragmentManager();
    mTaskFragment = (MyAsyncTaskFragment) fm.findFragmentByTag(TAG_TASK_FRAGMENT);
    if (mTaskFragment != null) {
        fm.beginTransaction().remove(mTaskFragment).commit();
    }
    mTaskFragment = null;


    //Test of remove
    mTaskFragment = (MyAsyncTaskFragment) fm.findFragmentByTag(TAG_TASK_FRAGMENT);
    if (mTaskFragment != null) {
        Log.d(TAG, "mTaskFragment is not null");
    }

FragmentTransaction
s异步发生。如果您希望尽快执行
remove()
,请在
commit()
之后立即在
FragmentManager
上调用
executePendingTransactions()
。谢谢,我只需要这些。