按下后退按钮时,java是否返回到正确的活动?
我正在创建一个有多个屏幕的应用程序,用户必须在其中导航。具体来说,我目前正在进行一系列活动,这些活动必须联系在一起,如下所示:
- 主要活动->;点击按钮可进入“CreateCharacterActivity”->;点击按钮可进入“CharacterMain活动”
- “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
我怎样才能做到这一点?我假设它涉及到访问活动堆栈
# 1 楼答案
从活动B移动到活动C时,在调用活动C上的
finish()
的同时调用startActivity
。这将从任务堆栈中删除活动B# 2 楼答案
您可以为result启动子活动,然后使用相同的请求代码使用result完成子活动
要启动子活动,请执行以下操作:
startActivityForResult (Intent intent, int requestCode)
完成所有的儿童活动
finishActivity (int requestCode)