我正在创建一个具有多个屏幕的应用程序,用户必须浏览这些屏幕。具体来说,我目前正在从事一系列必须按如下方式联系在一起的 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/