我正在为小孩子写一个数学应用程序来学习数学。它首先提示用户选择他们想要的问题类型(MainActivity
),然后显示一堆问题(QuestionsActivity
)。在回答了10个问题后,它会告诉您哪些问题的答案是正确的,哪些问题没有(ResultsActivity)。
我知道Android会将所有活动放在堆栈上。就我而言,它看起来像这样:
ResultsActivity
QuestionsActivity
MainActivity
当您致电finish
时,会从堆栈中弹出一个活动。我希望在ResultsActivity
返回主菜单按钮,返回MainActivity
。但是,如果我在finish
中致电ResultsActivity
,则用户会看到QuestionsActivity
!那么我如何在这两项活动上致电finish
?
答案 0 :(得分:6)
两个选项:
finish()
。这将从堆栈中删除它,以便从ResultsActivity返回返回MainActivity。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);