问题标签 [activity-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 投票
1 回答
926 浏览

android - 如何为 Android 应用程序维护 Activity Stack?

我是 Android 编程新手。

我想了解如何为特定的 Android 应用程序维护 Activity Stack 以及它如何根据用户导航进行更改。

例如,如果有多个活动,那么当用户单击后退按钮或主页按钮或启动新活动时,活动堆栈的行为如何?

我试图找到一个合适的帖子,在那里我可以获得所有信息,但我没有得到任何信息。有人可以建议我一些我可以学习的链接/帖子吗?

谢谢!

编辑:

到目前为止我遇到的链接/帖子:

  1. onSaveInstanceState 没有保存我的值( onCreate 输入 Bundle 始终为空)

  2. 使用 Save Instance State 保存 Android Activity 状态

  3. Android:启动模式“单实例”

0 投票
1 回答
619 浏览

android - 当意图过滤器启动活动时如何关闭以前的活动?

我有一个活动,通过这个意图过滤器从浏览器启动:

但是,如果我的应用程序的其他活动没有被破坏,它们将出现在已启动的活动后面。我需要以某种方式使用 CLEAR_TOP 标志,但使用意图过滤器。活动的launchMode 设置为singleTop ,我不能使用singleInstance 或singleTask。那么如何只启动我想要的活动而不启动其他活动呢?

0 投票
2 回答
252 浏览

android - Android:如何清除除第一个活动之外的先前堆栈中的所有活动

我将活动堆栈列表作为一个表单,但是一旦表单完成,我想清除除第一个活动之外的所有堆栈,但显示一个新活动,因此当点击新活动时将返回第一个活动。

例如 A -> B -> C -> D 然后变成 A -> E 这样在 D 上提交表单后,E 将对用户可见。

我要以这种方式启动吗?

0 投票
1 回答
42 浏览

android - 2 活动收到有关 GPS 状态更改的通知

我有A Activityand B Activity,都实现了LocationListener. 所以两者都有

B ActivityA Activity. 当我关闭 GPS 时B,它会AlertDialog按照代码所示打开,然后我打开 GPS 并关闭AlertDialog。现在,当我返回A Activity它时,它也会显示AlertDialog,因为它会在几秒钟前关闭 GPS 时收到通知。

我认为即使我B从中打开AA也不会完全销毁并保存在后台堆栈中。那么如何在不A从 Activity Backstack 中删除的情况下解决这个问题呢?应用程序只能AlertDialog在屏幕上的任何 Activity 上打开。

0 投票
1 回答
808 浏览

android - Android - 如何导航活动堆栈/任务

我有 3 Activities, Activity A, B, & C. 从中ActivityA,我单击一个button启动ActivityBActivityB然后单击另一个button启动ActivityC

我正在尝试找出返回 from 的正确方法ActivityAActivityC可选 return to ActivityBfrom ActivityC

如果我在ActivityC并单击button我想返回的主页ActivityB,但如果我单击“保存”,button我想完成ActivityC&ActivityB并显示ActivityA

我怎样才能做到这一点?

答案编辑:正如克里希纳·穆拉利在他的回答中所建议的那样,他已经完成了大约 99% 的路程。这两个标志成功了Intent.FLAG_ACTIVITY_CLEAR_TOP&Intent.FLAG_ACTIVITY_SINGLE_TOP

0 投票
2 回答
579 浏览

android - Android在按下主页按钮时恢复UI状态?

我有两个活动,A 和 B。

我的应用程序从 A 转到 B。(A -> B)。

当我在 B 上并按下后退按钮(硬件后退按钮)时,A 的状态和 UI 已成功恢复(正在调用 onResume())。问题是,当我按下主页按钮(操作栏箭头)时,前一个 Activity A 调用 onCreate() 所以它的状态和 UI 不会像按下后退按钮那样恢复。

为什么会这样?我该如何解决?

0 投票
1 回答
198 浏览

android - Android - 带有导航抽屉的活动堆栈/任务

我的应用程序中有三个顶级活动。活动 A、B 和 C。

这些活动中的每一个都承载一个导航抽屉。我试图找出管理这三个活动之间的活动堆栈的最佳方法。

例如,当我启动应用程序时,会启动 Activity A。活动 A 有一个类似于活动 B 和 C 的导航抽屉。当我单击抽屉中的活动 B 时,会启动活动 B,然后单击抽屉中的活动 C 会启动活动 C 等...

当抽屉启动新活动时,我不想完成这些活动,因为它们从后端服务加载数据,并且当我单击后退按钮时,我希望它将应用程序发送到后台。

本质上,我正在寻找一种方法来启动该活动,如果它不存在,如果它存在,就恢复它。我怎样才能做到这一点?

0 投票
2 回答
1687 浏览

android - 更改返回导航意图的意图附加内容

我有一个具有以下流程的应用程序(同一应用程序中的所有活动):

  • 活动 A 以 开始活动startActivityB。它可能会额外添加一个布尔值“autoContinue”=true。
  • 当活动 B 开始时,它会检查 "autoContinue"标志onCreategetIntent().hasExtra("autoContinue")如果标志为真,它会立即以startActivity.

现在我有两种情况可以在活动 C 中按下后退按钮:

  • 如果活动 B 仍在活动堆栈中并且没有被销毁,那么一切都很好。活动 C 关闭,活动 B 进入视野。
  • 如果我通过按主页按钮离开活动 C 并在返回活动 C 之前做一些其他事情,活动 B 通常会被破坏。现在,当我在活动 C 中按下后退按钮时,将使用具有“autoContinue”=true 的 Intent 创建活动 B,并立即再次启动活动 C。

我尝试从活动 B's 的 Intent 中删除标志onCreate,但它不起作用:

从活动 C 导航返回时,如何从意图附加内容中删除“autoContinue”=true 标志?

0 投票
0 回答
36 浏览

android - 在 Android 启动器中按 Home 后返回上一个活动堆栈

我正在开发一个自定义启动器/主屏幕,因此我能够处理家庭新闻事件。

有时我希望它可以拦截 Home-presses 而不会影响可见的活动堆栈。但是,当我按下 home 键时,我会进入我想的启动器堆栈,但我想做的是回到最后一次访问的活动堆栈,该堆栈在我按下 home 键之前显示。我怎样才能做到这一点?

如何检索并显示在我按下 home 之前可见的活动?

0 投票
4 回答
79 浏览

android - 如何在活动之间向前导航,同时从堆栈中丢弃登录屏幕?

我有一个应用程序,如果我在某个屏幕上,并且用户尝试访问需要身份验证的应用程序的特定部分,它会在继续之前进入登录屏幕。

该应用程序当前所做的是,假设我在屏幕 3 上,但想进入屏幕 4,但我需要先登录才能进入屏幕 4。显示登录屏幕,一旦登录,用户将被重定向到屏幕1 必须返回这些步骤才能返回他们所在的屏幕。

我想要的是,当用户单击按钮转到屏幕 4 时,将显示登录屏幕,一旦登录,用户将被发送到屏幕 4,而无需返回屏幕 3 然后再次单击该按钮。

我试过的是调用finish(); 一旦用户成功登录,但所做的只是将用户返回到屏幕 3,使他们必须单击按钮才能转到屏幕 4,这当然允许他们现在因为他们已登录。

有什么想法可以在我的应用程序中实现吗?

谢谢

编辑:标题可能具有误导性,我想不出更好的方法来改写标题。如果可以,请继续请求编辑