我有很多活动在彼此之后推出.
但在其中一项活动中,我需要用旗帜启动该特定活动FLAG_ACTIVITY_CLEAR_TOP.
这样它就可以完成之前的所有活动并开始.
问题我面临的问题是我不想完成堆栈中的某个活动,它应该是新发布的活动的存在.
假设我有活动[A] [B] [C] [D]
我在启动[D]活动FLAG_ACTIVITY_CLEAR_TOP后开始活动,[D]它会破坏所有活动,我希望活动[B]在后面继续运行,当我们按下后面的键时[D]它应该显示活动[B].
这该怎么做?
谢谢,
PP.
一种解决方案是[B]使用标志调用Activity FLAG_ACTIVITY_CLEAR_TOP,这将破坏所有活动[B].之后,调用Activity [D].
就像@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)
Run Code Online (Sandbox Code Playgroud)
这将为您提供[B]和[D],同时仍然到达[C]....尝试一下,它会起作用。
| 归档时间: |
|
| 查看次数: |
9132 次 |
| 最近记录: |