如何同时完成()两项活动?

时间:2015-08-26 05:39:37

标签: java android android-activity stack

我正在为小孩子写一个数学应用程序来学习数学。它首先提示用户选择他们想要的问题类型(MainActivity),然后显示一堆问题(QuestionsActivity)。在回答了10个问题后,它会告诉您哪些问题的答案是正确的,哪些问题没有(ResultsActivity)。

我知道Android会将所有活动放在堆栈上。就我而言,它看起来像这样:

ResultsActivity
QuestionsActivity
MainActivity

当您致电finish时,会从堆栈中弹出一个活动。我希望在ResultsActivity返回主菜单按钮,返回MainActivity。但是,如果我在finish中致电ResultsActivity,则用户会看到QuestionsActivity!那么我如何在这两项活动上致电finish

2 个答案:

答案 0 :(得分:6)

两个选项:

  1. 在调用启动ResultsActivity之后,在QuestionsActivity中调用finish()。这将从堆栈中删除它,以便从ResultsActivity返回返回MainActivity。
  2. 在意图中使用Intent.FLAG_ACTIVITY_CLEAR_TOP返回MainActivity。这将清除所有活动。

答案 1 :(得分:3)

您可以通过再次简单地启动MainActivity并使用以下标志清除堆栈来清除堆栈:

  final Intent intent = new Intent(context, MainActivity.class);
  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
  startActivity(intent);