在调用另一个 Activity 后删除片段的最佳方法是什么?

What is the best way to remove fragment after calling another Activity?

我相信我 运行 处于比赛状态。我从片段开始 Activity,然后删除片段。虽然应用程序保留在前台,但此实现没有问题。但是,如果就在 Activity 启动之前我将应用程序置于后台,我正在调用的 Activity 将启动,但是不会删除该片段。这是我的代码,

Intent intent = new Intent(getActivity(), MainActivity.class);
intent.putExtras(extras);
startActivity(intent);

    if (getActivity() != null) {   
        getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit();
        try {
            getFragmentManager().popBackStack();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

有没有更好的实现方式?我考虑过将删除添加到另一个线程,但后来我收到一个异常,说我无法在 onSavedState 之前执行删除片段操作。提前致谢!

getsupportfragmentmanager().popup()

您可以在开始新 activity 之前将片段标记为可移动(通过状态实例变量)。当控制权返回片段时,只需在片段的 onResume 代码或 activity 的 onResume 代码中将片段从堆栈中弹出,具体取决于片段的状态。如果您不清楚这个想法,请告诉我。我会写代码示例。