将特定活动作为堆栈中的根活动

Lys*_*gen 9 stack android android-intent android-activity

我的堆栈上有一组活动说A - > B - > C. 当我启动名为"D"的活动时,它应该被解雇为我的应用程序的根活动,并且一旦活动D启动,所有其他活动(A,B,C)应该从我的堆栈中清除.任何人都可以告诉我这该怎么做

Afz*_*mad 10

设置根活动

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

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

    startActivity(intent);
Run Code Online (Sandbox Code Playgroud)


Sha*_*ali 8

如果您浏览此文档http://developer.android.com/reference/android/content/Intent.html,您可以看到各种意图标志及其用途.

具体来说,对于您的问题,必须使用FLAG_ACTIVITY_CLEAR_TASK,它将清除在活动开始之前与活动相关联的任何现有任务,即活动成为否则为空的任务的新根,并且任何旧活动都已完成.

  • **FLAG_ACTIVITY_CLEAR_TASK**本身无法正常工作.您需要将其与**Intent.FLAG_ACTIVITY_NEW_TASK**(来自Android文档)一起设置. (2认同)