问题标签 [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.
android - 如何为 Android 应用程序维护 Activity Stack?
我是 Android 编程新手。
我想了解如何为特定的 Android 应用程序维护 Activity Stack 以及它如何根据用户导航进行更改。
例如,如果有多个活动,那么当用户单击后退按钮或主页按钮或启动新活动时,活动堆栈的行为如何?
我试图找到一个合适的帖子,在那里我可以获得所有信息,但我没有得到任何信息。有人可以建议我一些我可以学习的链接/帖子吗?
谢谢!
编辑:
到目前为止我遇到的链接/帖子:
android - 当意图过滤器启动活动时如何关闭以前的活动?
我有一个活动,通过这个意图过滤器从浏览器启动:
但是,如果我的应用程序的其他活动没有被破坏,它们将出现在已启动的活动后面。我需要以某种方式使用 CLEAR_TOP 标志,但使用意图过滤器。活动的launchMode 设置为singleTop
,我不能使用singleInstance 或singleTask。那么如何只启动我想要的活动而不启动其他活动呢?
android - Android:如何清除除第一个活动之外的先前堆栈中的所有活动
我将活动堆栈列表作为一个表单,但是一旦表单完成,我想清除除第一个活动之外的所有堆栈,但显示一个新活动,因此当点击新活动时将返回第一个活动。
例如 A -> B -> C -> D 然后变成 A -> E 这样在 D 上提交表单后,E 将对用户可见。
我要以这种方式启动吗?
android - 2 活动收到有关 GPS 状态更改的通知
我有A Activity
and B Activity
,都实现了LocationListener
. 所以两者都有
我B Activity
从A Activity
. 当我关闭 GPS 时B
,它会AlertDialog
按照代码所示打开,然后我打开 GPS 并关闭AlertDialog
。现在,当我返回A Activity
它时,它也会显示AlertDialog
,因为它会在几秒钟前关闭 GPS 时收到通知。
我认为即使我B
从中打开A
,A
也不会完全销毁并保存在后台堆栈中。那么如何在不A
从 Activity Backstack 中删除的情况下解决这个问题呢?应用程序只能AlertDialog
在屏幕上的任何 Activity 上打开。
android - Android - 如何导航活动堆栈/任务
我有 3 Activities
, Activity A, B, & C
. 从中ActivityA
,我单击一个button
启动ActivityB
,ActivityB
然后单击另一个button
启动ActivityC
。
我正在尝试找出返回 from 的正确方法ActivityA
,ActivityC
可选 return to ActivityB
from ActivityC
。
如果我在ActivityC
并单击button
我想返回的主页ActivityB
,但如果我单击“保存”,button
我想完成ActivityC
&ActivityB
并显示ActivityA
。
我怎样才能做到这一点?
答案编辑:正如克里希纳·穆拉利在他的回答中所建议的那样,他已经完成了大约 99% 的路程。这两个标志成功了Intent.FLAG_ACTIVITY_CLEAR_TOP
&Intent.FLAG_ACTIVITY_SINGLE_TOP
android - Android在按下主页按钮时恢复UI状态?
我有两个活动,A 和 B。
我的应用程序从 A 转到 B。(A -> B)。
当我在 B 上并按下后退按钮(硬件后退按钮)时,A 的状态和 UI 已成功恢复(正在调用 onResume())。问题是,当我按下主页按钮(操作栏箭头)时,前一个 Activity A 调用 onCreate() 所以它的状态和 UI 不会像按下后退按钮那样恢复。
为什么会这样?我该如何解决?
android - Android - 带有导航抽屉的活动堆栈/任务
我的应用程序中有三个顶级活动。活动 A、B 和 C。
这些活动中的每一个都承载一个导航抽屉。我试图找出管理这三个活动之间的活动堆栈的最佳方法。
例如,当我启动应用程序时,会启动 Activity A。活动 A 有一个类似于活动 B 和 C 的导航抽屉。当我单击抽屉中的活动 B 时,会启动活动 B,然后单击抽屉中的活动 C 会启动活动 C 等...
当抽屉启动新活动时,我不想完成这些活动,因为它们从后端服务加载数据,并且当我单击后退按钮时,我希望它将应用程序发送到后台。
本质上,我正在寻找一种方法来启动该活动,如果它不存在,如果它存在,就恢复它。我怎样才能做到这一点?
android - 更改返回导航意图的意图附加内容
我有一个具有以下流程的应用程序(同一应用程序中的所有活动):
- 活动 A 以 开始活动
startActivity
B。它可能会额外添加一个布尔值“autoContinue”=true。 - 当活动 B 开始时,它会检查 "autoContinue"标志
onCreate
。getIntent().hasExtra("autoContinue")
如果标志为真,它会立即以startActivity
.
现在我有两种情况可以在活动 C 中按下后退按钮:
- 如果活动 B 仍在活动堆栈中并且没有被销毁,那么一切都很好。活动 C 关闭,活动 B 进入视野。
- 如果我通过按主页按钮离开活动 C 并在返回活动 C 之前做一些其他事情,活动 B 通常会被破坏。现在,当我在活动 C 中按下后退按钮时,将使用具有“autoContinue”=true 的 Intent 创建活动 B,并立即再次启动活动 C。
我尝试从活动 B's 的 Intent 中删除标志onCreate
,但它不起作用:
从活动 C 导航返回时,如何从意图附加内容中删除“autoContinue”=true 标志?
android - 在 Android 启动器中按 Home 后返回上一个活动堆栈
我正在开发一个自定义启动器/主屏幕,因此我能够处理家庭新闻事件。
有时我希望它可以拦截 Home-presses 而不会影响可见的活动堆栈。但是,当我按下 home 键时,我会进入我想的启动器堆栈,但我想做的是回到最后一次访问的活动堆栈,该堆栈在我按下 home 键之前显示。我怎样才能做到这一点?
如何检索并显示在我按下 home 之前可见的活动?
android - 如何在活动之间向前导航,同时从堆栈中丢弃登录屏幕?
我有一个应用程序,如果我在某个屏幕上,并且用户尝试访问需要身份验证的应用程序的特定部分,它会在继续之前进入登录屏幕。
该应用程序当前所做的是,假设我在屏幕 3 上,但想进入屏幕 4,但我需要先登录才能进入屏幕 4。显示登录屏幕,一旦登录,用户将被重定向到屏幕1 必须返回这些步骤才能返回他们所在的屏幕。
我想要的是,当用户单击按钮转到屏幕 4 时,将显示登录屏幕,一旦登录,用户将被发送到屏幕 4,而无需返回屏幕 3 然后再次单击该按钮。
我试过的是调用finish(); 一旦用户成功登录,但所做的只是将用户返回到屏幕 3,使他们必须单击按钮才能转到屏幕 4,这当然允许他们现在因为他们已登录。
有什么想法可以在我的应用程序中实现吗?
谢谢
编辑:标题可能具有误导性,我想不出更好的方法来改写标题。如果可以,请继续请求编辑