gpt4 book ai didi

android Activity 顺序,只需要当前 Activity 的一个实例,而不是清除堆栈

转载 作者:行者123 更新时间:2023-11-29 21:09:28 33 4
gpt4 key购买 nike

单独使用 singleTask 和 singleInstance 并不是解决问题的方法。

我在堆栈中有 Activity ... n, n+1, n+2

n+2中的元素可以打开n+1

这会创建堆栈

... n, n+1, n+2, n+1

我希望它创建堆栈

... n, n+2, n+1 ,其中 n+1 被移动到栈顶

singleTask 创建这个堆栈

... n, n+1

并且 singleInstance 创建了这个堆栈

n+1 之前的所有 Activity 都已结束。

这两个我都不想要。

我可以使用任何启动模式吗?

FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY 只是为了让这个 Activity 不会从头开始重新加载,但不会清除历史记录中的重复 Activity ,也许我可以使用标志的组合?或者我可以在 Activity 堆栈的索引中找到该 Activity ,如果它不是最近的 Activity ,则将其删除?

最佳答案

我认为你应该使用 FLAG_ACTIVITY_REORDER_TO_FRONT。

If set in an Intent passed to Context.startActivity(), this flag will cause the launched activity to be brought to the front of its task's history stack if it is already running. For example, consider a task consisting of four activities: A, B, C, D. If D calls startActivity() with an Intent that resolves to the component of activity B, then B will be brought to the front of the history stack, with this resulting order: A, C, D, B. This flag will be ignored if FLAG_ACTIVITY_CLEAR_TOP is also specified.

关于android Activity 顺序,只需要当前 Activity 的一个实例,而不是清除堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23431817/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com