只是,我怎样才能关闭我的应用程序的特定活动?
例如我有以下活动:
A1 > B1 > C1
在 C1 中,我可以使用新参数再次进入 A 活动,因此当我打开新的 B (B2) 时,我想关闭旧活动:A1、B1、C1。
作为新的结果:
A2 > B2
我可以在 B2 之后回到 A2,并从 A2 完成应用程序。
只是,我怎样才能关闭我的应用程序的特定活动?
例如我有以下活动:
A1 > B1 > C1
在 C1 中,我可以使用新参数再次进入 A 活动,因此当我打开新的 B (B2) 时,我想关闭旧活动:A1、B1、C1。
作为新的结果:
A2 > B2
我可以在 B2 之后回到 A2,并从 A2 完成应用程序。
你有两种方法可以做到这一点:
您可以使用活动声明,例如single top。或者,您可以使用start for result在活动之间传递数据。然后在onActivityResult上调用finish();
这应该适合你:
Intent i = new Intent(C.this, A.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
FLAG_ACTIVITY_CLEAR_TOP
将清除Activities
堆栈中的所有其他内容。FLAG_ACTIVITY_CLEAR_TASK
此标志将导致在活动开始之前清除与活动相关联的任何现有任务。
@Dalmas 所述的注意事项FLAG_ACTIVITY_CLEAR_TASK
仅适用于 API >= 11