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

android - 了解 android:launchMode

我对 Android 中不同的活动启动模式感到非常困惑。我知道它与活动堆栈有关,这对我来说也不是很清楚。我希望通过一个简单的用例对每个启动模式进行简短的解释。

0 投票
1 回答
164 浏览

android - 如何以不同的布局启动活动两次,而不是将其保留在 Android 的活动回栈中

我有活动流程:

A1 和 Home 中的 BACK 按钮应关闭应用程序。所以我finish()在 A2 启动时调用 A1,并且在 Home 启动时调用 A2(感谢 A1 和 A2 永远不会保留在后堆栈中)。

但是,A2 中的 BACK 按钮应该指向 A1,所以我在 A2 中覆盖(A1 已经完成,如上所述,所以我必须重新启动它)

现在,可以使用 Home 中的按钮重新开始序列

在这种情况下(即在 Home 之后启动 A1->A2 时)A1 的布局应该有点不同。

0 投票
1 回答
68 浏览

android - 从不同的活动返回活动结果

我有 2 个 android 应用程序,比如应用程序 A 和 B。应用程序 A 启动应用程序 B 的主要活动,并使用startactivityForResult().

在应用程序 B 中,除了主要活动之外,还有其他活动进行处理,它们与主要活动链接在一起。当一个活动完成处理时,它会调用finish()并启动下一个活动。

应用程序 A 的结果仅在链中的最后一个活动上获得,我想将其返回给应用程序 A 并在onActivityResult()回调中接收它。

考虑到应用 B 的主要活动(从应用 A 接收到意图)已经完成,是否有可能将结果返回给应用 A?

提前致谢。

0 投票
3 回答
80 浏览

android - Android - 知道您在活动堆栈上的页面级别(层次结构)

从启动器活动开始,我需要一种方法来了解应用程序所处的级别(层次结构)。

例如,用户在购物应用中的图像并采用以下路径:

  1. 主要活动 ---> 2. 要购买的鞋子清单 ----> 3. 购物车 ---> 4. 结帐

所以结帐将是第 4 级。当用户只是看着要买的鞋子时,这将是第 2 级。我需要这个来报告(但我认为这信息太多了)。我只需要知道我在应用程序中的级别/部分。我如何设计一些东西来在活动生命周期中跟踪这一点?

更新:我有一个名为 level 的静态变量,我在我的应用程序中扩展了应用程序,因此我可以在每次活动开始时将其重置为 0。然后在我的活动 onstart 和 onstop 中,我正在调整级别,但我不知道这是否适用于所有场景。

但它不工作。我所有的活动(至少有 50 个)都从一个名为 baseActivity 的抽象类扩展而来。在 Base Activity 中是我想主要关卡的地方。最终目标是能够跟踪用户来自哪里。我需要报告最终用户到达活动的路径

0 投票
1 回答
2248 浏览

android - Android - 如何获取活动路径

我怎样才能获得最终用户到达任何活动的路径。

因此,如果用户访问了活动 A、B、C .. 那么在活动 ci 中将能够获得类似“A/B/C”的信息。同样,如果用户直接将路径带到 D​​、F,那么在活动 F 中,我将拥有“D/F”的路径信息。

0 投票
1 回答
285 浏览

android - 如何打开 Activity 的先前实例并重新创建它?

基本上我需要的是Activity每次调用startActivity()将实例移到前面时重新创建一个,而不是破坏其他活动。

例如,如果我在活动堆栈中

A->B->C->D

并且从 DI 想要打开 B,我当前使用的标志是FLAG_ACTIVITY_REORDER_TO_FRONT使 Activity 堆栈处于这种状态:A->C->D->B. 活动堆栈中的顺序是完美的,但是,Activity没有重新创建并onNewIntent()调用该标志。

因为Activity我不想重构很多东西的复杂性,我想要的是从头开始重新创建 B(onCreate()必须调用)而不是在onNewIntent()方法中执行我的逻辑。活动堆栈应该具有​​与我使用FLAG_ACTIVITY_REORDER_TO_FRONT. 任何想法?您的帮助将不胜感激。:)

0 投票
0 回答
84 浏览

android - 清除 Android 活动堆栈

我做了一个小Android应用程序来处理Activities,我面临一个奇怪的问题。

为了确定是否可以移至上一个Activity,我使用以下代码:

基本上,它返回一个Integer状态总活动onStop加一(当前Activity)。

启动时,我先运行 aSplashscreen以显示非常简单的信息,然后转到 login Activity

为了确保不Activity stack等于2,我使用:

此时,我希望在堆栈中获得1 个活动,但它给出了2

为什么 ?

谢谢你的帮助。

0 投票
0 回答
93 浏览

android - Android:为什么 FLAG_ACTIVITY_REORDER_TO_FRONT 表现出这种行为?

我一直在努力FLAG_ACTIVITY_REORDER_TO_FRONT管理 Activity 堆栈,但我意识到这个标志在不同的设备中具有不同的行为。想象一下,我在堆栈中有这些活动:A->B->C->D并从 DI 打开活动 B 使用FLAG_ACTIVITY_REORDER_TO_FRONT标志,所以新的堆栈状态是A->C->D->B。如果我从 B 按下后退按钮,您希望看到的是 D,然后是 C,最后是 A。它在我测试过的所有手机中都按预期工作,但关键是它仅在某些平板电脑中以相同的方式工作,因为在其他应用程序在我按下后退按钮时关闭。在 Nexus 10 中,当我从 D 打开活动 B 并按下后退按钮时,应用程序已关闭,如果我重新打开它,我所拥有的是之前在堆栈中的活动(A->C->D)。

有人知道发生了什么吗?似乎内部实现在不同的 Android 版本中有所不同:$

0 投票
5 回答
251 浏览

android - 开始第二个活动并未能回到第一个活动

假设我完全相当我的应用程序。(没有更多的活动堆栈)

但是,通知到达,用户将在单击时导航到第二个活动

问题是我怎样才能让第二个活动回到第一个活动(lancher)然后退出

如果按下后退按钮而不是直接退出(因为它没有任何堆栈)!?

导航到第二幕的通知。

0 投票
1 回答
1487 浏览

android - 用于 api 14 的 taskstackbuilder

我的编译器显示此消息...

调用所需的 API 级别 16(当前最低为 14)

问题是.. “这段代码是否可以在 api 14 中运行??” 因为我没有设备来测试这个 API 版本,因为 AVD 没有 GPS(要求)我是否必须实现支持库?

笔记

它在 API 16 及更高版本上完美运行

任务堆栈生成器

AndroidManifest