摧毁所有其他活动

时间:2015-09-30 16:24:16

标签: android android-intent android-activity

我试图使用FLAG_ACTIVITY_CLEAR_TOP,但我发现它与我的情况略有不同。

在我的项目中,有三个活动,A,B,C。

它像A - >一样移动; B - > C并且当创建活动C时,活动A和B被销毁。我应该使用FLAG_ACTIVITY_CLEAR_TOP还是其他api?

感谢。

2 个答案:

答案 0 :(得分:1)

如果您想在开始A活动时完成BC活动,那么要用于启动C活动,请添加以下标记:

cActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
cActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

答案 1 :(得分:1)

我会使用"调度员"机制。当B想要启动C时,它应该告诉A这样做:

Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("startC", true);
// If B needs to pass additional parameters to C via A add them here
intent.putExtra("key1", value1);
intent.putExtra("key2", value2);
...
startActivity(intent);

这将完成BA,创建A的新实例,并在onCreate()的新实例上调用A。在onCreate()的{​​{1}}中,执行以下操作:

A

这将导致super.onCreate(...); Intent intent = getIntent(); if (intent.hasExtra("startC")) { // Need to start C intent.setClass(this, C.class); startActivity(intent); finish(); return; } 启动A并完成自己。 C中的任何额外内容都会传递给Intent