【发布时间】:2019-08-08 11:00:50
【问题描述】:
想象一下这个活动历史堆栈:
A > B > C > D > E
场景 1:
如果用户在 E 上,那么在点击返回按钮时,它应该导航到 D > C > B > A。
场景 2:
如果用户在 E 上然后点击自定义按钮 “显示 B”,那么它应该清除 E > D > C .这类似于 Finish()。
Like X > Y 如果我们在 Y 上设置 finish,X 将被显示。类似如果我在 E 上录制 Show B 则 E > D > C 应该从堆栈中清除。
我需要实现这两种情况。
(已编辑 ^^^^ 与场景)
如果用户正在进行 E 活动并想要移动 B。如果 B 在历史堆栈中,我们可以清除 C > D > E 以便用户可以在没有 startActivity(B) 的情况下导航到 B。 A 应该在历史中。
如果堆栈中有一个 Activity,那么如果不是 startActivity(B),它应该从历史中加载。
如果我使用 FLAG_ACTIVITY_CLEAR_TOP/FLAG_ACTIVITY_NEW_TASK,它将清除全部历史记录并开始新的活动。
我想清除部分历史记录。
有可能实现吗?如果是这样,请问怎么做?
【问题讨论】:
-
您可以在开始活动时传递标志(即
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP),如果是这样的话)。 -
阅读Android 文档关于activity backstack 并阅读此链接stackoverflow.com/questions/14142936/…developer.android.com/guide/components/activities/…
-
另外,查看更新的应用导航方法和工具。您可以开始将这些包含到您的项目中; developer.android.com/guide/navigation/…developer.android.com/guide/navigationyoutube.com/watch?v=Y0Cs2MQxyIsyoutube.com/watch?v=8GCXtCjtg40
-
@rajkavadia 更新了我的问题。纳西姆
标签: android android-activity android-navigation