Android清除后退堆栈上的一些活动

时间:2019-04-25 04:27:19

标签: android

说我有 A-> B-> C-> D 要么 A-> C-> D

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

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

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

3 个答案:

答案 0 :(得分:2)

将此代码写在B活动中

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活动时,C类中的ForwardActivityResult

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

在D活动中转到B活动,调用RESULT_OK

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

答案 1 :(得分:1)

您可以使用

android:noHistory="true"

在清单中声明活动B的活动

答案 2 :(得分:-1)

我认为您可以在打开D finish()

之前使用此代码