为什么不能关闭所有活动?

时间:2014-06-13 11:40:24

标签: android android-intent

我有3个活动:A。B,....,C 从A:点击打开B. 从B:点击打开C

在C:我想要关闭所有活动(B,..,C)并回到A: 我使用这段代码,但它只关闭活动C,而不是关闭活动(B,...):

  Intent intent = new Intent(getApplicationContext(), A.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    Bundle b = new Bundle();
    b.putBoolean("UpdateVersion", true);
    intent.putExtras(b);
    startActivity(intent);

为什么不能关闭所有活动?

2 个答案:

答案 0 :(得分:2)

试试这个..

从B活动开始后,使用finish()

startActivity(intent);
finish();

答案 1 :(得分:1)

您需要调查startActivityForResult(),以便在创建的C的Activity的回调中,之前的B的Activity也会完成。回调函数调用onActivityResult(),在那里,你想调用finish()。

示例:

ActivityB:

Intent i = new Intent(this, ActivityC.class);
startActivityForResult(i, 0);

...

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    this.finish();
}

ActivityC:

//do stuff

这样,当您在ActivityC中按Back(或调用finish())时,它将回调ActivityB的onActivityResult()函数,并且它们将结束它们。