Android中的FLAG_ACTIVITY_CLEAR_TOP

lom*_*mza 54 android

有人可以用一种非常简单的方式解释我的FLAG_ACTIVITY_CLEAR_TOP意思吗?我知道有很多问题,但没有一个答案让我满意.有人也可以给出这个标志有用的例子吗?谢谢.

Dev*_*eva 84

请查看以下链接以获取相同的详细信息:

http://developer.android.com/reference/android/content/Intent.html

这意味着:假设您有4个活动,A,B,C和D,流程是

A - > B - > C - > D.

现在当你在D上时,你想要启动活动B(从堆栈而不是新实例)然后你可以使用这个意图标志.它的作用是删除B之上的所有其他活动(这里是C和D).

一个实时的例子是一个带有活动的电子邮件应用程序ReadMailInInbox - > OpenMailFullScreen - > ReplyMail一旦你回复你的邮件,你就不想回到OpenMailFullScreen,而你希望你的ReadMailInInbox活动能够成为最重要的,这样你就可以通过传递开始这项活动将标志设置为的意图FLAG_ACTIVITY_CLEAR_TOP.

希望这可以帮助.

  • @Deva,所以根据你的例子,回到已经存在的活动B的实例后,如你所说; 活动C和D现在应该从堆栈中清除.但是,如果我在活动B上按下按钮,我已经测试了,活动D仍然显示.为什么? (22认同)
  • @anonim,可能的问题可能在`launchMode`.你需要使用`singleTask`而不是`singleInstance`.完美的解释在这里http://stackoverflow.com/a/36111557/1219012 (2认同)