问题标签 [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 投票
2 回答
646 浏览

android - 通过覆盖设备后退按钮避免显示以前的活动

我有一个 Activity_A ,它有一个注销选项。单击该按钮后,我调用了登录活动。因此,当我在登录活动中单击设备后退按钮时,它会将我带回具有注销选项的 Activity_A。我想要的是,当我在登录活动时单击设备后退按钮时,它必须将我带到设备主屏幕。诸如“关闭应用程序”或“清除活动堆栈”之类的东西。

我试过这个:

但它没有用,我也尝试在上面的代码中使用finish(),然后它把我带到我在Activity_A之前调用的Activity(如预期的那样)。

我搜索了我的案例,但找不到完美的解决方案,有人可以帮我实现我想要的吗?

我有一个想法,在我的登录活动中覆盖设备后退按钮 onClick,以便它显示设备的主屏幕并清除所有活动堆栈......这可能吗?如果是,它安全吗?

这就是我在 LoginActivity 中所做的,就像我想要的那样工作

但是有没有其他方法可以在不覆盖 onBackPressed() 的情况下实现这一点?

0 投票
4 回答
959 浏览

android - 如何从堆栈中不止一个的另一个活动返回到我的主要活动?

我有一个带有一堆按钮的主菜单活动。一个按钮启动一个新活动,允许用户填写和提交表单。当用户提交表单时,第三个活动开始,基本上只是一个带有一些内容的屏幕和一个返回主菜单的按钮。但是,当我创建意图并转到主要活动时,setContentView() 不起作用,并且我的按钮分配导致 NullPointerException。

我知道有一些方法可以通过意图标志或调用完成()返回堆栈。我没有成功使用诸如Intent.FLAG_ACTIVITY_CLEAR_TOP. finish() 将不起作用,因为我还有两项活动,而不是一项。回到主要活动的正确方法是什么?

谢谢

0 投票
1 回答
8801 浏览

android - 如果有意导航返回,则始终调用 onCreate

我有一个名为 HomeActivity 的活动,它有一个 SurfaceView 并显示一个相机预览图片。如果您正在启动/重新启动此活动,它会很安静并且感觉很慢。

因此,我进行了一些调查并发现,总是以某种方式调用 onCreate 方法。在我看来,如果活动已经开始,这不应该发生?

文档说:首次创建活动时调用。这是您应该进行所有常规静态设置的地方:创建视图、将数据绑定到列表等。此方法还为您提供了一个包含活动先前冻结状态的 Bundle(如果有的话)。始终跟在 onStart() 之后。

这是处理返回的方法:

编辑:

这是我离开 HomeActivity 的方式......没什么特别的:

0 投票
1 回答
7690 浏览

android - 如何在调试中查看活动堆栈?

我有一个问题,我的一项活动在我认为我完成后弹出。

有没有办法查看活动的堆栈?

0 投票
2 回答
2513 浏览

android - 以 Intent 方式打开浏览器,但不要将其保留在 Activity 堆栈中

我在理解活动堆栈以及它如何影响我的应用程序的行为方面遇到了一些问题。

单击按钮后,它会启动一个打开浏览器的 Intent。当我在浏览器中并按下主页按钮时,我会进入主屏幕。现在,如果我通过启动器再次启动我的应用程序,它会打开浏览器而不是我的应用程序。如何避免在启动我的应用程序时打开浏览器?

现在,打开 url 的代码如下所示:

我使用了错误的标志吗?如果是这样,我必须使用哪些标志?

提前致谢!

0 投票
1 回答
63 浏览

android - 更改活动堆栈行为

好吧,我有 2 个活动,比如 A 和 B,用户像疯了一样在它们之间拉动 A 然后去 B 然后 A 等等,现在我不希望通过 A 和 B 的所有“层”拉回家的正常行为。

我希望如果用户在 A 中,它将返回 Home,如果他在 B 中,他将返回 A,并且我希望尽可能传统和系统友好地执行此操作 - 这意味着我不想要解决方法会填满我的活动堆栈,我也不想开始新任务的活动。

我曾尝试在活动 A 上使用 android:clearTaskOnLaunch="true" ,并且据记载,这似乎是最好的做法,但它没有提供记录在案的行为 - 它的行为与没有它时的行为相同......

你有什么建议?

0 投票
1 回答
374 浏览

android - 以编程方式通过应用程序处理 Activity 堆栈

我的应用程序 A-->B-->C-->D 中有四个活动。

我写了一个我自己的类MyActivity,它扩展了 Activity 类。我编写这个类来处理活动堆栈。这个类有两个方法 addActivitiyTostack() 和 getActivityFromStack() 我使用堆栈来存储活动。

所有其他活动都扩展了这个类。当我使用意图从一个活动移动到另一个活动时,它会添加到堆栈中。

当我移动 backword 活动时会弹出。我可以正确地将活动添加到堆栈中,但是在弹出活动时遇到问题。

另外我在所有活动上都有Logout Button,这个按钮的OnClick 我要关闭应用程序怎么实现呢?任何人都知道如何在 Android 中处理活动堆栈。

这是我的代码。

一个-->

乙-->

C-->

0 投票
1 回答
91 浏览

android - 返回到活动堆栈中的第一个活动而不显式调用它

我正在开发一个由两个库项目组成的应用程序。这两个库项目都由实际应用程序使用。

第一个库项目可以看作是主库项目,因为它包含整个应用程序仪表板形式的主菜单。从仪表板中的一个条目,用户可以开始一项活动,该活动是第二个图书馆项目的一部分。

可以从此活动开始的所有活动以及任何进一步的活动也是第二个图书馆项目的一部分。所以第二个图书馆项目对第一个图书馆项目一无所知。

在操作流程结束时,用户应该通过单击一个按钮返回到仪表板活动。所以我需要清除除第一个活动(仪表板)之外的整个活动堆栈。通常我会通过使用标志 FLAG_ACTIVITY_CLEAR_TOP 启动仪表板活动来做到这一点。由于我需要历史记录,因此也不能选择使用 FLAG_ACTIVITY_NO_HISTORY。

但是正如我之前提到的,第二个库项目的任何组件都不应该对主库项目一无所知。因此,使用标志调用仪表板活动不是解决方案。

所以我正在寻找一种方法来完成第二个库项目的所有活动,而不是主库项目的仪表板活动。

0 投票
1 回答
550 浏览

android - 清除android中的活动堆栈

我有一个LoginActivity作为我的启动器屏幕。而SettingsActivity作为我的fifth screen.

我有一个logout button设置屏幕。On clcik这个按钮,我怎样才能从活动堆栈 中Screen-1 (i.e LoginActivity)清除所有剩余的活动?(i.e 2nd, 3rd, 4th)

注意:我已经完成LoginActivity但没有剩余的活动。提前致谢

0 投票
1 回答
293 浏览

android - 给予 Cleartop 后,活动堆栈未清除

我在底部有 4 个按钮。假设 A、B、C、D。这些按钮是我作为小部件创建的,并包含在每个布局中。在每个按钮单击上,我打开一个我在 Common 类中实现的活动。当我的应用程序启动时,A 将处于选中状态,在 AI 下启动一些活动 A1、A2、A3。当我按下 B 时,B 将处于选中状态并开始 B1 活动。我在启动 B1 时设置了 CLEAR_TOP 标志,但是我在 A 下启动的活动没有清除。当我再次单击 A 按钮时,将启动 A1 活动,并清除 A2 和 A3(以前启动的)等所有活动。但是B1,B2没有被清除。为什么会这样。