活动历史堆栈没有明确

时间:2014-01-20 11:28:15

标签: android back-stack

我有4个活动类e.g A, B, C and D在这里我将从A开始,然后是C,在这个(C)活动的菜单中我给了活动A的链接,所以当我选择菜单时我要去A和A再从A我要从B到这里我要去D然后回到B然后去C. 总的情况是A->C->A->B->D->B->C 现在问题是按下后退按钮就像这样

C->B->D->B->A->C->A exit

但我想这样使用如果活动A中的用户直接关闭应用程序,则不需要返回B然后C但是如果它在B中则不需要返回C Activity.So中的C和D我正在使用android:noHistory="true"并且它工作正常,但是我不能将这个用于B.因为当从D回到B时,我不能跳过B活动并直接跳转到A. 所以现在堆栈是这样的:

C->B->A->A exit

之后我尝试过:

    intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

感谢您的考虑。

2 个答案:

答案 0 :(得分:-1)

在使用Intent的地方,它将先前的活动存储在堆栈中,因此使用finish方法清除堆栈,例如

Intent intent = new Intent(A.this,b.class);
startActivity();
finish();

答案 1 :(得分:-1)

此代码可以帮助您

 Intent intent = new Intent(this, FirstActivity.Class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();