标志FLAG_ACTIVITY_CLEAR_TOP的活动(android)

时间:2011-03-03 09:49:31

标签: android

我在彼此之后发起了一系列活动 但在其中一项活动中,我需要使用标记FLAG_ACTIVITY_CLEAR_TOP启动该特定活动。

这样它就可以完成之前的所有活动并开始。

问题我面临的是我不想完成堆栈中的活动之一,它应该是新发布的活动背后的存在。

假设我有活动[A] [B] [C] [D]
我在开始活动[D]后开始FLAG_ACTIVITY_CLEAR_TOP活动并使用标记[D]它将销毁所有活动,我希望活动[B]在后​​面继续运行,当我们按下时[D]上的后退键应显示活动[B]

怎么做?

谢谢,
PP。

2 个答案:

答案 0 :(得分:6)

一种解决方案是使用标记[B]调用活动FLAG_ACTIVITY_CLEAR_TOP,这将销毁除[B]之外的所有活动。之后,请调用活动[D]

答案 1 :(得分:3)

像@Mudassir所说,开始活动[A]。当你调用[B]时只需使用FLAG清除除[B]之外的所有数据,然后你可以在没有[B]标志的情况下调用[D];因此你想要[B] [D]吗?然后按下后退按钮,你将从[D]到[B],没有任何其他数据?你似乎没想到他希望你用[D]中的旗帜调用[B],那目的是什么?那时你只能[B]结束。

- 无论哪种方式,你都会失去[C]。解决方案可能是:

startActivity(A)
[in activity A] startActivity(B) - WITH CLEAR_TOP TO KILL [A]
[in activity B] startActivityForResult(C) - WHEN [C] IS finish() IT WILL COME BACK TO [B]
[in activity B, onActivityResult()] startActivity(D)

这会给你JUST [B]& [D],同时仍然进入[C] ....尝试一下,它会起作用。