问题标签 [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 回答
149 浏览

android - 当应用程序已经运行时,如何控制从启动器加载哪个活动

我有一个包含多个活动的应用程序。第一个是登录/启动活动,随后是一些在应用程序生命周期内发生变化的活动(及其“登录”连接)。

如果用户按下主页按钮,它会返回到 Launcher。一切都很好。如果用户转到“最近的应用程序”并选择我的应用程序,它会从停止的地方返回(所需的行为)。如果用户转而转到启动器中的我的图标并再次启动应用程序,我会得到两种行为之一。1. 活动完全返回到它之前的位置,就像我从最近的应用程序中选择它时一样。2. 活动被带到初始登录屏幕。不是我所期待的。在大多数设备和 Android 版本上似乎并非如此,但似乎每次都在某些设备上发生。我无法将其固定到 4.0.4 或 4.1 或 4.2 - 我们在某些手机的所有 3 个版本上都看到了这种行为。

当我在移动到启动器时查看这些系统上的活动堆栈(使用 dumpsys)时,它们似乎是相同的(我在堆栈上看到我最近的,就在启动器下方,我还看到我的应用程序堆栈我最近的在上面)。但是当我点击启动器中的应用程序图标时,在大多数设备上,我看到它返回并且活动堆栈在顶部显示我最近的。但是在其他几台设备上,我在最近的设备上看到了登录活动。如果我在登录活动中单击“返回”按钮,我会很高兴地回到我离开的地方。

为了说明,在我点击主页然后单击我的应用程序图标后,在某些设备上,我看到以下堆栈:

在这些其他人身上,我看到:

是否有一个选项可以控制设备/操作系统上的这种行为?或者在我的应用程序中我需要在转换到“家”时做些什么来决定它如何返回到我的应用程序(如果是这样,为什么有时只需要)?

0 投票
3 回答
6562 浏览

android - Intent.FLAG_ACTIVITY_CLEAR_TOP 在 Android 中不起作用

嗨,我正在开发 android 应用程序,其中我有像这样的 A-->B-->C 的活动流。

所以我的意图是,一旦 B 打开活动 C 就关闭 A 和 B。为此,我尝试使用 2 个标志: Intent.FLAG_ACTIVITY_CLEAR_TOP and Intent.FLAG_ACTIVITY_SINGLE_TOP

但是当我点击返回时,它显示了活动 B 和 A。我开始这样的活动

我不知道为什么它不起作用?我做错了什么吗?需要帮忙。谢谢你。

0 投票
1 回答
463 浏览

android - Android删除相同活动的多个实例,除了第一个

我看到很多类似的线程。但我的情况不同。这是我的Activity流量

当我单击ActivityC 中的一个按钮时,我必须返回第一个活动 A,关闭它上面的所有其他按钮并在那里执行任务。当我单击后退按钮时,不应干扰此流程。除了我的场景标准之外,我不能使用任何android:launchmode。我怎样才能做到这一点?

0 投票
5 回答
1863 浏览

android - 从另一个活动恢复活动

我有带有“新游戏”和“恢复”按钮的 MenuActivity。“新游戏”启动 FireRoomActivity。

在 FireRoomActivity 中,onBackPressed 被覆盖以返回到 MenuActivity。

MenuActivity 中的“恢复”按钮应该恢复 FireRoomActivity。但这只是退出应用程序。

Q1)我做错了什么?

Q2)如果我添加第三个活动“ThreeActivity”并从 FireRoomActivity(finishing FireRoomActivity)启动它,并在这个“ThreeActivity”覆盖 onBackPressed 去 MenuActivity,我会怎么做?

我是android生命周期的新手,所以我会很感激详细的答复

0 投票
9 回答
49982 浏览

android - 如何在android中完成所有活动并关闭应用程序?

我的应用程序具有以下流程:

首页->屏幕1->屏幕2->屏幕3->屏幕4->屏幕5>首页->屏幕2->首页->屏幕3

我的问题是,当我尝试关闭应用程序时,每次尝试关闭应用程序时都会打开 Home 活动。

当用户在主屏幕上按下设备的后退键时,我只想关闭应用程序。

0 投票
4 回答
3049 浏览

android - android父活动在startActivity上被杀死

我有一个带有列表视图的简单应用程序。当用户点击列表项时,我开始一个新活动

一旦 EventDetailsActivity 启动,HomeActivity 就会被销毁(调用 onDestroy)。当用户从 EventDetailsActivity 中点击后退按钮时,会重新创建 HomeActivity,这是我不想要的。

我一直无法弄清楚为什么 HomeActivity 首先被杀死。我也使用 udb 检查了活动堆栈,它没有显示 HomeActivity

这仅在三星 Galaxy Note 2 上发生

知道为什么会这样吗?

0 投票
2 回答
1518 浏览

android - 完成活动的旧实例并启动同一活动的新实例

我的 MenuActivity 有两个按钮“新游戏”和“恢复”,分别带有 onClick 方法 newGame() 和 resume()

  • newGame() 方法启动 GameActivity 并完成 MenuActivity。

  • 恢复()方法。当 resume() 时,MenuActivity 会自行完成并且实际上会自动恢复 GameActivity。因为它将在后堆栈中。为什么它会在后栈中?在 GameActivity 中,onBackPressed 方法会启动 MenuActivity,但不会自行完成,因此会留在后台堆栈中。

场景如下:新的游戏按钮被按下,即MenuActivity结束,GameActivity启动。在游戏中的某个时刻,用户按下后退按钮,它将启动 MenuActivity。在 MenuActivity 中,用户再次按下新游戏按钮。它应该完全完成旧的 GameActivity 实例并释放它所持有的所有内存并从头开始新的实例。但是现在当新游戏开始时,旧版本仍在内存中,我可以从 DDMS 分配的内存中看到它。我将如何达到我所描述的理想效果?

0 投票
1 回答
32 浏览

android - 3 Activity栈情况

我正在使用 android.developer Activity Stack 演示应用程序。

初始活动称为“A”。您可以从“A”开始“B”和“C”活动。基本上,您可以从任何活动开始其他两个活动。

这是让我困惑的情况:我开始“A”,开始“B”,然后开始“C”。此时“A”和“B”按预期停止。但是,当我开始活动“A”(从当前活动,即“C”)时,“B”和“C”都会被破坏。谁能解释为什么“B”和“C”被破坏而不是被阻止?

0 投票
4 回答
12661 浏览

android - noHistory 与 finish() - 哪个是首选?

我不希望我的应用程序在按下按钮时显示很少Activity(比如说)。所以我已经在我的 for that中使用了,如下所示:SplashScreenActivitybacknoHistory=trueManifest.xmlActivity

除了设置noHistory,我还可以调用finish()我的SplashActivity.onPause()方法或任何我想要的地方,如下所示:

两者都完美地完成了这项工作。但是哪个更好用,使用noHistory还是调用finish()

0 投票
1 回答
653 浏览

android - Android - Notification Pending Intent - 添加到活动堆栈问题的顶部

我对通知生成器中的待处理意图有点困惑。我有一个MainActivity活动和一个MessageList活动。我有一项服务可以在找到新消息时显示通知,我希望它是,如果用户按下通知,它会打开MessageList活动,但是当他们按下时,他们将返回到他们所在的活动。

本质上,我想MessageList在他们按下通知而不修改当前活动堆栈的情况下将活动添加到活动堆栈的顶部。

谢谢