首页 > 解决方案 > Android 清除 Back Stack 上的一些 Activity

问题描述

假设我有 A -> B -> C -> D 或 A -> C-> D

当 D 完成时,我想返回但跳过 C,它将返回 A 或 B。

但是当用户使用后退按钮时,它会正常返回 D -> C -> B -> A 或 D -> C -> A

我们如何在android中做到这一点?

标签: android

解决方案


在 B Activity 中编写此代码

public void gotoC()
{
  Intent intent = new Intent(B.this, C.class);
    startActivityForResult(intent, 10);
}

 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            switch (requestCode) {
                case 10:


            }
        }
    }

@Override
    public void onBackPressed() {

            super.onBackPressed();

    }

调用 Intent 去 D Activity 时 C 类中的 ForwardActivityResult

 public void gotoD()
{
Intent intent = new Intent(Activity.C, D.class);
      intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
      startActivity(intent);
      finish();
}

在 D 活动 GO 到 B 活动调用 RESULT_OK

public void gotoB()
{
Intent intent = new Intent();
     setResult(RESULT_OK, intent);
     finish();
}

推荐阅读