繁体   English   中英

Android-如何返回以前的其他活动

[英]Android - how to return to different previous activities

我的应用程序中有几个活动/页面。 从第一个活动中,我可以打开第二个活动。 在此第二活动中,玩游戏。 游戏结束后,新的活动开始。 在该新活动中,我有一个使用finish()完成该按钮的按钮,它使我回到游戏的活动中。 我还具有一个将其返回到第一个活动的按钮。 这是一个说明图:

img

当我使用finish()返回游戏活动时,游戏处于结束状态。 我想重置所有变量和小部件,但是我不知道如何通过在Final Activity中调用finish()来检查是否进入了此页面。

问题1:如何检查是否由于完成另一个活动而参加了一项活动?

我还有一个问题:在button2中,我可以使用什么方法不仅可以完成最终活动,还可以完成堆栈上的所有先前活动(除了第一个活动,因此在本例中将是“最终活动”和“游戏活动”),为了返回第一个活动? 在关于stackoverflow的其他答案中,我找到了使用FLAG_ACTIVITY_CLEAR_TOP建议,但如果这样做,我将无法再通过button1返回到Game Activity。

问题2:如何返回第一个活动,同时仍然允许我使用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();
}

问题1:如何检查是否由于完成另一个活动而参加了一项活动?

您可以轻松地使用全局布尔标志,例如“ activityFinished”,当您在Final Activity上调用finish()时,将其设置为true。 并在您活动的onResume()中,检查activityFinished == true,如果是,则将您的内容设置为false。

问题2:如何返回第一个活动,同时仍然允许我使用finish()返回其他活动?

我不明白为什么FLAG_ACTIVITY_CLEAR_TOP对您来说是个问题。 您仅将意图设置为FLAG_ACTIVITY_CLEAR_TOP即可在按下按钮2后返回到您的第一个活动,不是吗? 这与按钮1的动作有什么关系?

更新:尝试此代码

Intent a = new Intent(this,FirstActivity.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(a);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM