Android 删除并提交片段,但不删除它';它仍然在getSupportFragment管理器中
有没有想过为什么碎片没有被移除?这是从带有retaininstance(true)的“AsyncTask”片段调用的接口方法。在remove mTaskFragment的测试中,该值不等于null,因此将打印日志行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
@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()
。谢谢,我只需要这些。