Java 完成活动不需要';不显示以前的

Java 完成活动不需要';不显示以前的,java,android,android-activity,Java,Android,Android Activity,我有四种活动,称之为A、B、C、D。 从A开始,你可以从B开始,从B开始,你可以从C开始,从cd开始 使用Intent,我开始新的活动: Intent intent = new Intent(this, B.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(in

我有四种活动,称之为A、B、C、D。 从A开始,你可以从B开始,从B开始,你可以从C开始,从cd开始

使用Intent,我开始新的活动:

Intent intent = new Intent(this, B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent);
活动D扩展了活动A:

public class D extends A 
{
    ...
}
当我试图关闭活动D时,应该显示活动C,但不是这样,而是显示活动B。完成其他活动(如B、C)效果良好(始终显示上一个活动)。 我尝试用finish()完成D,super.onBackPressed(),还尝试调用新的Intent并从中启动C,但始终显示活动B。我不知道为什么

当我完成D时,为什么不显示C

编辑:
我发现调用了活动C的onResume(),但日志的下一行是:应用程序终止,活动B如图所示。C中的onResume()中没有代码,所以仍然不知道哪里出了问题。

为什么每次都要创建一个新任务?还有你的头顶

只是创造一个简单的意图

Intent intent = new Intent(this, B.class);
startActivity(intent);
这不正是你想要的吗

哦,我希望你在每一个意图中与你真正想要展示的活动交换
B.class
?或者这就是“始终显示活动B”的原因


请参阅此处有关活动和任务后堆栈的详细信息

此处设置标志的目的是什么?打开已创建的活动实例(如果存在)。标记活动新任务的目的是什么?为什么要在单独的任务中启动所有活动?我已经尝试过了,但没有改变。但我发现调用了活动C的onResume(),但在日志的下一行是:应用程序终止,活动B如图所示。C中的onResume()中没有代码。您是否在“运行”窗口中查看日志?看看“Android监视器”中的logcat。为了跟踪这一点,我建议您在每个活动的每个onCreate和onDestroy中放置一个日志行,以查看谁在触发,而每个onCreate、onResume和onDestroy的日志帮助我找出了这一点。谢谢