我有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);
为什么不能关闭所有活动?
答案 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()函数,并且它们将结束它们。