按BACK按钮时返回正确的活动?

时间:2016-11-07 02:19:01

标签: java android

我正在创建一个具有多个屏幕的应用,用户必须浏览该应用。具体来说,我目前正在开展一系列必须如下链接的活动:

  • 主要活动 - >点击按钮会导致" CreateCharacterActivity" - >点击一下按钮即可进入" CharacterMainActivity"
  • 返回按钮" CharacterMainActivity"应该返回MainActivity而不再显示CreateCharacterActivity。
  • 此行为在应用程序的其他区域应该类似,但它应该恢复BACK按钮导致的活动在暂停之前所处的状态。

所以为了简化,我想要这样。

  • 活动A - >活动B - >活动C
  • BACK按钮使活动C返回活动A,而不通过活动B.

我试过这样做:

@Override
public void onBackPressed() {
    super.onBackPressed();
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
    finish();
}

但这只是调用MainActivity的新实例。当我在MainActivity实例上按BACK时,它会将我带回CharacterMainActivity。

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

您可以为结果启动子活动,然后使用相同的请求代码完成子活动,结果也是如此。

开始儿童活动:

startActivityForResult (Intent intent, int requestCode)

完成所有儿童活动

finishActivity (int requestCode)