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中一样被修改?