gpt4 book ai didi

java - Android - 如何返回到之前的不同 Activity

转载 作者:行者123 更新时间:2023-12-01 11:05:09 24 4
gpt4 key购买 nike

我的应用程序中有多个 Activity/页面。从第一个 Activity 开始,我可以打开第二个 Activity 。在第二个 Activity 中进行游戏。游戏结束后,新的 Activity 开始。在该新 Activity 中,我有一个使用 finish() 完成该 Activity 的按钮,这使我返回到游戏的 Activity 。我还有一个按钮可以将其返回到第一个 Activity 。这是一个澄清的图表:

img

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

问题1:如何检查我是否因完成另一项 Activity 而进入某项 Activity ?

我还有另一个问题-我可以在button2中使用什么方法不仅完成最终的 Activity ,而且完成堆栈上所有先前的 Activity (第一个 Activity 除外,所以在这种情况下它将是最终 Activity 和游戏 Activity ),以便返回到第一个 Activity ?在 stackoverflow 上的其他答案中,我找到了使用 FLAG_ACTIVITY_CLEAR_TOP 的建议,但如果我这样做,我就无法再使用 button1 返回游戏 Activity 。

Q2:如何返回第一个 Activity,同时仍允许我使用 finish() 返回其他 Activity?

<小时/>

我用来返回上一个 Activity 的代码:

// called from button1's onClick 
public void goBack(View button1){
finish();
}

返回第一个 Activity :

public void toFirstActivity(View button2){
Intent previousPage = new Intent();
previousPage.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
}

最佳答案

Q1: How can I check if I entered an activity as a result of finishing another?

您可以轻松使用全局 boolean 标志,例如“activityFinished”,当您在 Final Activity 上调用 finish() 时,将其设置为 true。并在您的 Activity 的 onResume() 中,检查 ActivityFinished == true 是否,如果是,则执行您的操作并将标志重置为 false。

Q2: How can I return to the first activity, while still allowing me to use finish() to return to other activities?

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

更新:试试这个代码

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

关于java - Android - 如何返回到之前的不同 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33041720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com