如何同时完成()两个活动?
How to finish() two activities at the same time?
我正在为小孩子编写一个数学应用程序来学习数学。它首先提示用户 select 他们想要什么样的问题 (MainActivity
),然后它会显示一堆问题 (QuestionsActivity
)。在回答 10 个问题后,它会告诉您哪些问题您回答正确,哪些没有回答 (ResultsActivity)。
我知道 Android 将所有活动放在堆栈上。在我的例子中,它看起来像这样:
ResultsActivity
QuestionsActivity
MainActivity
并且当您调用 finish
时,一个 activity 会从堆栈中弹出。我希望在 ResultsActivity
中有一个返回主菜单按钮以返回到 MainActivity
。但是,如果我在 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 returns 返回到 MainActivity.
- 在返回 MainActivity 的意图中使用
Intent.FLAG_ACTIVITY_CLEAR_TOP
。这将清除其上的所有活动。
我正在为小孩子编写一个数学应用程序来学习数学。它首先提示用户 select 他们想要什么样的问题 (MainActivity
),然后它会显示一堆问题 (QuestionsActivity
)。在回答 10 个问题后,它会告诉您哪些问题您回答正确,哪些没有回答 (ResultsActivity)。
我知道 Android 将所有活动放在堆栈上。在我的例子中,它看起来像这样:
ResultsActivity
QuestionsActivity
MainActivity
并且当您调用 finish
时,一个 activity 会从堆栈中弹出。我希望在 ResultsActivity
中有一个返回主菜单按钮以返回到 MainActivity
。但是,如果我在 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 returns 返回到 MainActivity. - 在返回 MainActivity 的意图中使用
Intent.FLAG_ACTIVITY_CLEAR_TOP
。这将清除其上的所有活动。