![](/img/trans.png)
[英]How to display 2 different classes (activities) in a fragment in ANDROID?
[英]Android - how to return to different previous activities
我的应用程序中有几个活动/页面。 从第一个活动中,我可以打开第二个活动。 在此第二活动中,玩游戏。 游戏结束后,新的活动开始。 在该新活动中,我有一个使用finish()
完成该按钮的按钮,它使我回到游戏的活动中。 我还具有一个将其返回到第一个活动的按钮。 这是一个说明图:
当我使用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.