问题标签 [back-stack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
235795 浏览

android - 清除整个历史堆栈并在 Android 上启动一个新活动

是否可以在堆栈上启动一个活动,清除它之前的整个历史记录?

情况

我有一个活动堆栈,可以是 A->B->C 或 B->C(屏幕 A 选择用户令牌,但许多用户只有一个令牌)。

在屏幕 C 中,用户可能会采取使屏幕 B 无效的操作,因此应用程序希望将他们带到屏幕 A,而不管它是否已经在堆栈中。然后,屏幕 A 应该是我的应用程序堆栈中的唯一项目。

笔记

还有许多其他类似的问题,但我还没有找到任何可以回答这个确切问题的东西。我尝试调用getParent().finish()- 这总是导致空指针异常。FLAG_ACTIVITY_CLEAR_TOP仅当活动已经在堆栈上时才有效。

0 投票
10 回答
57781 浏览

android - 如何清除 Android Stack 的活动?

我在 Android 中有一个包含多个活动的应用程序,我希望用户能够通过按菜单按钮注销。我的问题是

A)Android 不允许您终止应用程序,并且
B)即使我将用户发送到另一端LoginActivity,他们​​也可以随时按下并立即回到他们所在的上一个活动。

我已经尝试使用以下两个标志启动 Activity:

我也亲自尝试过他们每个人。

finish()startActivity(intent)我阅读另​​一个 StackOverflow 问题时,我也尝试过打电话。

0 投票
11 回答
77315 浏览

android - 如何在使用不同的 Intent 启动 Activity 时防止其出现多个实例

当我使用Google Play 商店应用程序(以前称为 Android 市场)上的“打开”按钮启动应用程序时,我遇到了一个错误。从 Play 商店启动它似乎与Intent从手机的应用程序图标菜单启动它不同。这会导致启动同一个 Activity 的多个副本,这些副本相互冲突。

例如,如果我的应用程序包含活动 ABC,那么这个问题可能会导致一堆 ABCA。

我尝试android:launchMode="singleTask"在所有活动上使用来解决此问题,但是每当我点击 HOME 按钮时,它都会产生将 Activity 堆栈清除为 root 的不良副作用。

预期的行为是: ABC -> HOME -> 当应用程序恢复时,我需要: ABC -> HOME -> ABC

有没有一种好方法可以防止启动多个相同类型的活动,而无需在使用 HOME 按钮时重置为根活动?

0 投票
3 回答
2901 浏览

android - Android中维护标准应用Activity回栈状态(使用singleTask启动模式)

我无法找出如何在开发中维护我的 Android 应用程序的状态。

澄清一下,我不是在谈论维护活动状态(即跟踪特定活动的文本框值、复选框等)。

例如,假设我的应用程序有两个活动A,并且B. 当我启动我的应用程序时,它会将我带到 activity A,然后按下它上面的按钮将我带到 activity B。此时,我按下手机上的主页按钮返回主 Android UI 并退出我的应用程序。但是,如果我选择再次运行我的应用程序,它应该带我进入活动B,这是我在按下主页按钮之前停止的地方,而是带我进入活动A

有谁知道我该如何纠正这个问题?

(如果您需要知道,我正在使用三星 Vibrant)

0 投票
3 回答
12343 浏览

android - 清除旧 SDK(缺少 FLAG_ACTIVITY_CLEAR_TASK)上的完整 Android 活动堆栈

我已经对 SO 进行了一些阅读和搜索,但找不到清除当前活动堆栈的方法。我的应用程序的上下文是由后台服务/通知启动的活动。

想象一下,我的应用程序允许您组织人员列表。几个小时前,您在“查看”活动中查看人员 X,现在这是您堆栈的顶部。在未来的某个时候,服务会触发,我会为人员 Y弹出一个新的“通知”活动。从那里您可以编辑人员 Y 的详细信息。

当您完成此活动时,弹出堆栈并最终查看人 X 将是一种令人困惑的用户体验。理想情况下,我想回到用户正在做的任何事情(电子邮件等......),或者至少回到我的应用程序的家。

我尝试使用 "Notify" 开始,FLAG_ACTIVTY_NEW_TASK但这似乎没有帮助:当任务完成时,它只是返回到上一个任务。我想要的似乎是 Android 3 的 new FLAG_ACTIVITY_CLEAR_TASK,它在以前的 SDK 中不存在。

有没有人有实现这一目标的建议?

0 投票
0 回答
1455 浏览

android - 在 Task 中启动 Activity

Android中是否有任何方法可以在当前活动上启动活动而不是到任务的顶部。

例如,我们有活动 A -> B -> C,在 B 中我们开始新的活动 D。
我们可以得到订单 A -> B -> D -> C 吗?

谢谢!

0 投票
1 回答
4842 浏览

android - Android:如何在onStop之后返回具有“noHistory”属性的Activity?

我正在寻找一种从历史堆栈中删除某个活动的方法,并在此处找到了解决方案(Wakkas 的答案)。但是,如果我在打开此活动的情况下关闭应用程序,例如通过按主页按钮,然后返回它,则活动不会恢复。

如果我删除“noHistory”属性,它会回来并在杀死后恢复。

有没有办法让它不出现在历史堆栈中(=不想通过在下一个活动中按下后退按钮回到它)而没有这种行为?

亲切的问候,水母

0 投票
12 回答
111852 浏览

android - 来自后台堆栈的片段 onResume

我正在使用兼容性包将 Fragments 与 Android 2.2 一起使用。当使用片段并将它们之间的转换添加到后台堆栈时,我希望实现与活动的 onResume 相同的行为,即,每当片段在弹出后被带到“前台”(对用户可见)时backstack,我希望在片段中激活某种回调(例如,对共享的 UI 资源执行某些更改)。

我看到片段框架内没有内置回调。为了实现这一目标,有什么好的做法吗?

0 投票
2 回答
1598 浏览

android - '后栈的基本

我在 android.com 上阅读了关于Task and back stacks的开发人员指南,其中说:

例如,假设当前任务(任务 A)在其堆栈中有三个活动——两个在当前活动之下。用户按下 HOME 键,然后从应用程序启动器启动一个新应用程序。当主屏幕出现时,任务 A 进入后台。当新应用程序启动时,系统会为该应用程序启动一个任务(任务 B),并使用它自己的活动堆栈。与该应用程序交互后,用户再次返回 Home 并选择最初启动任务 A 的应用程序。现在,任务 A 进入前台——其堆栈中的所有三个活动都完好无损,堆栈顶部的活动恢复。

似乎每个任务都创建了自己的堆栈(后堆栈)。我的假设是真实的还是只有一个堆栈,通常编译器有,比如 C?

0 投票
7 回答
29707 浏览

android - 如何在 Android 应用程序中查找回栈活动?

我有一个带有活动回栈 A -> B -> C -> D -> E 的应用程序。现在在活动 E 中,我想知道我从中导航的回栈活动。我怎么找到这个??