gpt4 book ai didi

Android FLAG_ACTIVITY_CLEAR_TOP 无法正常工作?

转载 作者:太空狗 更新时间:2023-10-29 15:29:36 24 4
gpt4 key购买 nike

我真的不明白所有这些标志是如何工作的,因为我完全按照文档所说的去做,但它并没有解决我的问题。我的 Activity 是这样启动的:(第一)Activity A -> Activity B -> (第二)Activity A。如果我按下按钮,它会回到 Activity B -> Activity A -> Exit application。现在我想要从 Activity B 声明的第二个 Activity A,当按下返回时,它将跳过 Activity B 和第一个 Activity A,并立即退出应用程序。这是代码:

从 A 到 B:

TabActivityGroupAbs parentActivity = (TabActivityGroupAbs) ((Activity) ctx).getParent();
detailIntent = new Intent(parentActivity, B.class);
parentActivity.startChildActivity("BFromA", detailIntent);

从 B 到 A:

TabActivityGroupAbs parentActivity = (TabActivityGroupAbs) ((Activity) ctx).getParent();
detailIntent = new Intent(parentActivity, A.class);
detailIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
detailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
parentActivity.startChildActivity("AFromB", detailIntent);

从 B 到 A,我添加了标志 FLAG_ACTIVITY_CLEAR_TOP。但它没有清除任何东西。我按回去的时候,还是去了Activity B,然后又去了A。我做错了什么?

而且似乎所有标志都不起作用。从 A 到 B,我输入:

detailIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

它应该防止 B 被放入 Activity 堆栈。但事实并非如此。从第二个activity A开始,按back还是回到B。

现在我应该怎么做才能退出应用程序而不是从第二个 Activity A 返回到 B。

编辑:我忘了说。从 B 到 A,如果我调用 finish() 来终止 Activity B,那么从第二个 Activity A,当按下返回时,它会返回到第一个 Activity A。为什么 Activity A 在这里有 2 个实例,尽管我设置了 FLAG_ACTIVITY_CLEAR_TOP?真奇怪。

最佳答案

读一遍,flag_activity_clear_top 的使用不再有问题

这里简单说明一下 Flag_Activity_Clear_Top 的用法。

一个正确使用的衬里配方:

它总是清除调用 Activity 和被调用 Activity 之间的中间 Activity (如果有的话)。

这是一个 Activity 流程:

Activity A -> Activity B -> Activity C(使用 flag activity clear top to go to D) ->Activity D

在上面的序列中,当我们到达 D 时,如果我们向后按,我们将得到 Activity C->Activity B-> Activity A因为两者之间没有中间 Activity Activity C 和 Activity D

一些开发者的迷思是——

在使用 C 中的标志 Activity clear top 到达 Activity D 后,他们期望在 D 中按下后退键时会将他们带到应用程序之外。这永远不会发生

Flag_Activity_Clear_Top 始终清除两个 Activity 之间的中间 Activity (如果有的话)

关于Android FLAG_ACTIVITY_CLEAR_TOP 无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11534079/

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