有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

按下后退按钮时,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

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


共 (2) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    您可以为result启动子活动,然后使用相同的请求代码使用result完成子活动

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

    startActivityForResult (Intent intent, int requestCode)

    完成所有的儿童活动

    finishActivity (int requestCode)