java - 按下“返回”按钮时返回到正确的 Activity ?

标签 java android

我正在创建一个具有多个屏幕的应用程序,用户必须浏览这些屏幕。具体来说,我目前正在从事一系列必须按如下方式联系在一起的 Activity :

  • 主 Activity -> 单击按钮会导致“CreateCharacterActivity” -> 单击按钮会导致“CharacterMainActivity”
  • “CharacterMainActivity”上的 BACK 按钮应返回到 MainActivity,而不会再次显示 CreateCharacterActivity。
  • 此行为在应用的其他区域应该类似,除了它应该恢复 BACK 按钮导致的 Activity 在暂停之前所处的状态。

所以为了简化,我想要这样。

  • Activity A -> Activity B -> Activity C
  • BACK 按钮使 Activity C 返回到 Activity A,而不经过 Activity B。

我试过这样做:

@Override
public void onBackPressed() {
    super.onBackPressed();
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
    finish();
}

但这只是调用了 MainActivity 的一个新实例。然后,当我在该 MainActivity 实例上按 BACK 时,它会将我带回到 CharacterMainActivity。

我怎样才能做到这一点?我假设它涉及访问 Activity 堆栈?

最佳答案

当您从 Activity B 移动到 Activity C 时,在对 Activity C 调用 startActivity 的同时调用 finish()。这将从任务中移除 Activity B堆栈。

关于java - 按下“返回”按钮时返回到正确的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40456898/

相关文章:

java - String#equals 和 String#contentEquals 方法的区别

java - 在 IntelliJ 调试/运行中将字符串缓冲区传递给 java 程序

Java返回返回空白

java - Tomcat、Java 和 Oracle 9. org.apache.naming.NamingContext 查找

android - 如何在 Android 中从 VPN 中排除 Chromecast 连接

java - 为什么我们需要 Java 应用服务器

android - 设备管理 API 示例 : works fine on emulator NoSuchMethod error on Device

android - 在 Android 上使用复选框更改 GoogleMaps v2 中的 MapView

android - 在 Android 上解析 HTML,主要性能问题

android - Genymotion,优胜美地上的 “Unable to load VirtualBox engine.”。已安装虚拟机