我的应用中有几个活动/页面。从第一个活动开始,我可以开第二个活动。在第二个活动中,玩游戏。一旦这个游戏结束,一个新的活动开始。在那个新活动中,我有一个完成它的按钮,使用finish()
,它返回我与游戏的活动。我还有一个按钮,将其返回到第一个活动。这是一个澄清的图表:
当我使用finish()
返回游戏活动时,游戏将在州内。我想重置所有变量和小部件,但我不知道如何通过在最终活动中调用finish()
来检查我是否进入了此页面。
Q1:如何检查我是否因为完成另一项活动而进入某项活动?
我还有另一个问题 - 我可以在button2中使用什么方法来完成最后的活动以及堆栈上的所有先前活动(第一个活动除外),因此在这种情况下它将是最终活动和游戏活动),为了返回第一个活动?在stackoverflow的其他答案中,我找到了使用FLAG_ACTIVITY_CLEAR_TOP
的建议,但如果我这样做,我再也无法使用button1返回游戏活动。
Q2:我如何才能返回第一项活动,同时仍允许我使用finish()
返回其他活动?
我使用的代码返回上一个活动:
// called from button1's onClick
public void goBack(View button1){
finish();
}
回到第一个活动:
public void toFirstActivity(View button2){
Intent previousPage = new Intent();
previousPage.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
}