- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有 4 个 Activity A、B、C、D、E,每个 Activity 都声明为 android:launchMode="singleInstance"
,A 是 B 的 parentActivity
,B作为 C 的父 Activity,在 list 中。
现在用户像这样导航到 E:A > B > C > D > E。我在 E 中有一个带有以下 onClickListener 的按钮
Intent intent = new Intent(E.this, C.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
我需要什么?(同样根据文档,如果我理解正确,应该会发生这种情况)
I want this stack: C | B | A
发生了什么?
I get this stack: C | E | D | B | A
PS:我的问题与this非常相似但是,那里给出的答案不适合这个问题。我在那里和其他地方找到的一些答案:
startactivity(intent)
后立即在 E 上尝试 finish() 时,它只是完成了 E,但没有完成 D。最佳答案
Artem Mostyaev 的评论解决了这个难题!使用 singleTask
So what exactly was the mistake?
当 singleInstance
用作 launchMode
,并且当一个 Activity 启动时,Android 确保它在一个新任务中启动,就像 NEW_TASK
一样。添加了标志,它本身是其中唯一的 Activity 。
所以当用户导航到 E 时,堆栈永远不会像 [ A |乙 |丙 | D | E]相反,有五个不同的任务,例如 [A] [B] [C] [D] [E]。
当我用 CLEAR_TOP
尝试 E > C 时, 它确实在它的任务中搜索了 C 并试图清除 C 之后的所有 Activity 。但是 C 从来没有出现在 E 所在的任务中。
所以它尝试启动一个新的 Activity C,但是当我设置 launchMode
时至 singleInstance
,除了将 [C] 放在前面而其他任务保持不变外,它别无选择。
So how
singleTask
worked?
它像我想要的那样创建了堆栈 [ A |乙 |丙 | D | E] 和 CLEAR_TOP
按预期工作。完成!
关于android - FLAG_ACTIVITY_CLEAR_TOP 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36111261/
我想知道,2个代码有什么区别? newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
我被困在使用 Flag activity clear top usage 中。这对我来说是个大问题。有时有效,有时无效。我不关心是什么。这真的让我很困惑。请帮忙 在这里,我从 Login Acitiv
我遇到了 FLAG_ACTIVITY_CLEAR_TOP 问题。当用户启动应用程序时,会出现一个屏幕供他们登录或注册。用户登录到应用程序后,我希望关闭所有以前的 Activity 。当我按下后退按钮时
我想在我的所有 Activity 设备上都有一个主页按钮,以便它们可以将您带到起点。我从堆栈溢出和 http://developer.android.com/guide/topics/fundamen
我有一个简单的用例。我的 Activity 如下所示:A > B > C 现在,我收到推送通知。 我在我的 GCMIntentService 类中执行以下操作: 在onMessage中, Intent
我有 4 个 Activity A、B、C、D、E,每个 Activity 都声明为 android:launchMode="singleInstance",A 是 B 的 parentActivit
我真的不明白所有这些标志是如何工作的,因为我完全按照文档所说的去做,但它并没有解决我的问题。我的 Activity 是这样启动的:(第一)Activity A -> Activity B -> (第二
在我正在处理的应用程序中,Chrome 选项卡用于外部 OAuth 流。 在流程结束时,自定义选项卡保持打开状态并显示一条信息性消息,并发送一封包含自定义方案链接的电子邮件。 直到 Android 1
我有一个 Activity A,它使用 startActivityForResult 启动一个新 Activity B。 Activity B 使用 FLAG_ACTIVITY_CLEAR_TOP 重
在我的菜单中有一些项目。 Home 是它的一个项目,我想成为我的应用程序的根,每当用户点击它时,Android 清除堆栈然后返回主屏幕。 这是我的代码: menu.setOnItemClickedLi
根据上图,我有一些疑问。请按顺序阅读每个步骤:- 每个 block 都是一个 Android Activity 箭头代表 Stack Direction——Activity 打开的顺序(A 在应用程序
我的申请流程: 登录->个人资料->更新个人资料->ChangePass 我所有的 Activity 都扩展了 FragmentActivity 当我在 ChangePass Activity 中按下
我有多个管理连接的 Activity (B => C => D)。如果该连接断开,它们应该全部清除并将结果返回给 A,具体取决于原因(RESULT_USER_TERMINATED、RESULT_LOW
我有一个 MainActivity(它有 launchMode=singleTop),我从它转到其他 Activity ,例如 B 和 C。现在,我想在 B 和 C 中单击某个按钮时导航回 MainA
我的 Activity 堆栈是 A B C,C 在顶部。 A 使用 startActivityForResult() 启动了 B。 现在,在 C 中,它启动 A 并使用以下代码清除顶部:
正如标题所说,为什么 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 或 intent.setFlags(Intent.FLAG_ACTIVITY_CL
谁能用非常简单的方式解释一下 FLAG_ACTIVITY_CLEAR_TOP 是什么意思?我知道有很多关于它的问题,但没有一个答案让我满意。有人还可以举一个这个标志有用的例子吗?谢谢。 最佳答案 详情
我的应用程序涉及跟踪车辆通过检查门的移动 当在门口张贴的人员点击车辆号码上的“通过”按钮时,该车辆应从列表中删除。我通过再次调用 VehicleActivity 类并将门 id 放入键值对中来完成此操
我有一个像这样的 Activity 堆栈 A -> B -> C。我正在启动 Activity A,并从 C 清除顶部。现在发生的情况是它将立即完成 C,然后它将恢复 A,然后大约 2 秒后它会完成
我有很多 Activity ,比如登录->主->a、b、c、d->注销 [a、b、c、d 是四个 Activity ]。当我登录应用程序时,它会转到主程序并完成登录 Activity 。和 main
我是一名优秀的程序员,十分优秀!