Java 按下后退按钮时是否返回到正确的活动?

Java 按下后退按钮时是否返回到正确的活动?,java,android,Java,Android,我正在创建一个具有多个屏幕的应用程序,用户必须在其中导航。具体而言,我目前正在进行一系列活动,这些活动必须联系在一起,如下所示: 主活动->按钮单击导致“CreateCharacterActivity”->按钮单击导致“CharacterMainActivity” “CharacterMainActivity”上的后退按钮应返回到MainActivity,而不会再次显示CreateCharacterActivity 此行为在应用程序的其他区域中应该类似,只是它应该恢复“后退”按钮导致的活动在暂

我正在创建一个具有多个屏幕的应用程序,用户必须在其中导航。具体而言,我目前正在进行一系列活动,这些活动必须联系在一起,如下所示:

  • 主活动->按钮单击导致“CreateCharacterActivity”->按钮单击导致“CharacterMainActivity”
  • “CharacterMainActivity”上的后退按钮应返回到MainActivity,而不会再次显示CreateCharacterActivity
  • 此行为在应用程序的其他区域中应该类似,只是它应该恢复“后退”按钮导致的活动在暂停前所处的状态
所以为了简化,我希望它是这样的

  • 活动A->活动B->活动C
  • 后退按钮使活动C返回到活动A,而不经过活动B
我试着这样做:

@Override
public void onBackPressed() {
    super.onBackPressed();
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
    finish();
}
但这只是调用MainActivity的一个新实例。当我在MainActivity实例上按BACK键时,它会将我带回CharacterMainActivity


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

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

您可以启动子活动以获得结果,然后使用相同的请求代码完成子活动,并获得结果

要启动子活动,请执行以下操作:

startActivityForResult(意图-意图,int-requestCode)

完成所有子活动


finishActivity(int requestCode)

如果我在活动a中有一个对象的引用,那么启动活动B并将该对象作为包裹传递,然后在该活动中修改该对象并按BACK返回到活动a,a对该对象的引用是否会像在B中一样被修改?