将特定活动设置为堆栈的根活动

13

我有一组活动,比如 A->B->C。当我启动名为“D”的活动时,它应该作为我的应用程序的根活动被触发,并且所有其他活动(A、B、C)都应该在启动 Activity D 时从我的堆栈中清除。是否有人可以告诉我如何实现这一点。

2个回答

13

设置根活动

    Intent intent = new Intent(this, DActivity.class);

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

    startActivity(intent);

8
如果您阅读此文档http://developer.android.com/reference/android/content/Intent.html,您可以了解各种意图标志及其用途。
具体而言,在您的问题中,您需要使用FLAG_ACTIVITY_CLEAR_TASK,它将在启动活动之前清除与活动关联的任何现有任务,即活动成为一个否则为空的任务的新根,并且任何旧活动都将被结束。

2
FLAG_ACTIVITY_CLEAR_TASK本身无法正常工作。您需要与Intent.FLAG_ACTIVITY_NEW_TASK一起设置(来自Android文档)。 - Borzh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接