0

假设有三个活动

A->B->C

如果我从 C 回到 B ,我要做的只是:

在 C 中:

            onBackPressed();

在 B

protected void onSaveInstanceState(Bundle outState) {
.....
}

if (savedInstanceState != null) {
.....
}

上面的代码将处理从C到B的情况。但是,如果C到A,我该怎么办?另外,如果我想在 C 到 A 时破坏 A 和 C 之间的所有活动,该如何处理?谢谢

4

1 回答 1

2

另外,如果我想在 C 到 A 时破坏 A 和 C 之间的所有活动,该如何处理?

用这个Intent Flag

Intent i = new Intent(ActivityC.this, ActivityA.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

但是,如果 C 到 A,我该怎么办?

此标志将所有内容保留Activities在堆栈之间,但将 A 放在前面

Intent i = new Intent(ActivityC.this, ActivityA.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);

在任何一种情况下,如果你想删除它,你将需要在调用finish()C 之后调用它。startActivitiy()

您可以在 Docs中找到所有HereIntent Flags

于 2013-08-05T02:21:21.817 回答