Java 如何同时完成两项活动?

Java 如何同时完成两项活动?,java,android,android-activity,stack,Java,Android,Android Activity,Stack,我正在为小孩子们编写一个数学应用程序来学习数学。它首先提示用户选择他们想要的问题类型(MainActivity),然后显示一组问题(QuestionsActivity)。回答10个问题后,它会告诉你哪些问题回答正确,哪些没有(ResultsActivity) 我知道安卓将所有活动放在一个堆栈上。在我的例子中,它看起来是这样的: ResultsActivity QuestionsActivity MainActivity 当您调用finish时,将从堆栈中弹出一个活动。我希望在ResultsAc

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

我知道安卓将所有活动放在一个堆栈上。在我的例子中,它看起来是这样的:

ResultsActivity
QuestionsActivity
MainActivity

当您调用
finish
时,将从堆栈中弹出一个活动。我希望在
ResultsActivity
中有一个返回主菜单按钮,以返回到
main活动。但是,如果我在
ResultsActivity
中调用
finish
,用户将看到
QuestionsActivity
!那么,我如何调用这两个活动的
finish

您只需再次启动MainActivity并使用以下标志清除堆栈即可清除堆栈:

  final Intent intent = new Intent(context, MainActivity.class);
  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
  startActivity(intent);
两种选择:

  • 在调用开始ResultsActivity后,在QuestionsActivity中调用
    finish()
    。这会将其从堆栈中删除,以便从ResultsActivity返回到MainActivity
  • 在返回MainActivity的意图中使用。这将清除它上面的所有活动

  • 使用,而不是开始一项新任务,因为它更高效。谢谢,很高兴知道。:)但是,如果用户在ResultsActivity中按下后退按钮,它仍然会返回到QuestionsActivity,对吗?覆盖以启动
    main活动
    ,而不是设置
    FLAG\u ACTIVITY\u CLEAR\u TOP
    标志。