我正在努力解决如何正确地做到这一点。我在这样的堆栈中有以下活动;
A-> B-> C-> D-&GT,E
当E完成时,我想回到B,在此过程中摧毁C,D,E。我想回到B的同一个实例,而不是实例化它的新版本。在活动E中,我有这个:
Intent intent = new Intent(context, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
其中LoginActivity是我所谓的活动B.代码分支到活动B,但我认为我没有正确地这样做。我说这有两个原因:
我在活动B的onNewIntent()
方法中设置了一个断点,该方法应该以这种方式启动活动时触发。但是,我从未见过这个断点。
我在活动B上有一个按钮监听器。如果我在堆栈源自A-> B时单击此按钮,它就会触发。然而,当我的流程是A-> B-> C-> D-> E-> B时,听众不再发射。这实际上是我的更大问题,但这些信息的组合告诉我,我有些不对劲。
事实上,我可以从一些日志记录输出中看到,当我返回到活动B时,会调用其onCreate()
方法,这正是我想要避免的。
有人能告诉我我做错了什么吗?谢谢!