如何从片段 class 内的 AsyncTask class 的 onPostExecute 函数中删除片段

How do I remove a fragment from onPostExecute function of an AsyncTask class inside the Fragment class

我有一个 NagivationDrawer,当用户按下特定项目时我会更改片段。

所以我有这样的东西

public class MyFragment  extends Fragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
          ......
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState){  
          ....... 
    }

    public class MyAsynchTack extends AsyncTask<Void, Void, Boolean> {  
          .
          .
          .
        @Override
        protected void onPostExecute(final Boolean success) {

            showProgress(false);

            if (success) {
                getActivity().getSupportFragmentManager().popBackStack();
            } else {
            String title = getString(R.string.serverErrTitle);
            String message = getString(R.string.serverErr);
            DialogBoxNetworkError dialog = new DialogBoxNetworkError();
            Bundle args = new Bundle();
            args.putString(DialogBoxNetworkError.ARG_TITLE, title);
            args.putString(DialogBoxNetworkError.ARG_MESSAGE, message);
            dialog.setArguments(args);
            dialog.show(getActivity().getFragmentManager(), "tag");
        }
    }         

    .
    .
    .
    .
}

我正在使用它来成功删除片段:

if (success) {
                getActivity().getSupportFragmentManager().popBackStack();
            } 

但它不起作用,我也尝试了我找到的其他解决方案。

谢谢。

已编辑

这是从 NavigationDrawer 添加片段的方式 activity :

    public void addNewWh(View view) {
    SellerNewWhFragment fragment = null;
    fragment = new SellerNewWhFragment();
    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
    fragmentTransaction.replace(R.id.frame, fragment);
    fragmentTransaction.commit();
}

您错过了 fragmentTransaction.addToBackStack(null); 电话 如文档所述:

Add this transaction to the back stack. This means that the transaction will be remembered after it is committed, and will reverse its operation when later popped off the stack.

之后您将能够撤消此交易。