java - 关闭当前 Activity 的另一个 Activity

标签 java android android-activity

我要完成这个结构:

Activity A 正在展示。如果按下某个按钮,则打开 Activity B(不关闭 A 的当前实例)。如果我按下 B 的后退按钮,我只想完成 B,以便我可以看到 A 的旧实例。但是如果在 Activity B 中我按下另一个按钮,我想关闭 A 并打开 C。

如何在 Activity B 打开时关闭 Activity A 并启动 Activity C?

解释: 当 B 处于 Activity 状态时,A 绝不能被破坏,这样我才能返回到它。但是如果我想打开 C,那么 A 必须被销毁,这样如果我按下 C 的后退按钮,我就不会再看到它了。

我已经使用 startActivity() 和 finish() 方法实现了打开所有 Activity 的代码。我现在需要的只是一个答案或建议,告诉我如何重新设计我的结构以实现我的目标。

编辑

我想我想在我想打开 B 时使用 startActivtyForResult(),这样当我准备好打开 C 时,我只需让 A 关闭自身即可。

最佳答案

当你按下 Button C 转到 ActivityC 时,你只需要传递 addFlag 方法,其 Intent 如下

public void onClick(View v) {
        if(v.getId()==R.id.butoonC){
                Intent intent = new Intent(this, ActivityC.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);  
  }
}

此处Intent.FLAG_ACTIVITY_CLEAR_TOP将从 Activity 堆栈中删除所有 Activity , Activity B Activity C除外。因此,当您从 Activity B 返回时,您的 Activity 将无法返回到 Activity A。 我希望这对你有用

关于java - 关闭当前 Activity 的另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41194680/

相关文章:

Java - 内存实现

java - 无法使用 Selenium 和 Java 11 导入 o​​rg.openqa.selenium.WebDriver

java - Android 收集和发送数据

android - 错误膨胀类包含在 PreferenceActivity

java - 为什么a[0]的输出是0而不是-1?

java - 我可以在 SWT FileDialog 过滤器中隐藏文件扩展名吗?

android - 如何用 Flow 替换 LiveData

java - onActivityResult 无法使用 R 中的资源

android - Activity 从 MapActivity 切换到 Activity

android - Activity 不调用服务