问题标签 [launchmode]

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 回答
2868 浏览

android - 阻止多个 Activity 实例但仍使用 onActivityResult

我有一个活动,我只想存在一次,无论它打开多少次。以前我使用的是launchMode singleTask,一切都很好。但是,现在我需要使用 onActivityResult,由于某种原因,它与 launchMode singleTask 不兼容。

您是否知道复制其中任何一个功能的方法。

0 投票
1 回答
1189 浏览

android - 如何从具有单实例启动模式的活动中正确启动语音识别活动?

已经看到另一个线程提到,如果从具有单实例启动模式的活动中启动,具有识别器意图的活动将无法正常工作。所以我想知道我的替代方案是什么。

我的用例如下:我的应用程序监听一个事件,当这个事件发生时,它会显示一个警告对话框,即使用户正在使用另一个应用程序。从其他问题中,我发现这样做的常见方法是使用单实例启动模式启动活动。但是现在一旦弹出这个警告对话框,我需要使用 RecognizerIntent 并对文本进行一些语音处理。然而,语音输入对话框不会等待任何输入,并且会立即调用 onActivityResult()。如果我的警报对话框从具有“singleInstance”以外的启动模式的活动中弹出,则一切正常。

还有其他方法可以解决这个问题吗?

0 投票
1 回答
1160 浏览

android - android singleTask/singleInstance 问题

我正在为 android 设计一款游戏,我只想拥有它的一个实例。

游戏有一个我称之为 GameActivity 的主要活动和另一个我称之为 CreateAccountActivity 的活动。

我在清单中将 GameActivity 定义为android:launchMode="singleTask".

当应用程序第一次启动时,我使用startActivityForResult方法启动 CreateAccoutActivity。

问题是,当我点击主页按钮然后启动我的应用程序时,什么也没有发生(从用户的角度来看,但我从日志中看到 CreateAccountActivity 被销毁,GameActivityonActivityResult被调用然后它也被销毁(它RESULT_CANCEL偏离了方向。

这是日志:

为简单起见,我这样描述:Activity A = MAIN - singleTask Activity B = (undefined - standard)

A startsForResult B -> 主页按钮 -> 游戏启动按钮 -> B 已销毁 -> A onActivityResult 被调用 -> A 已销毁 -> 游戏启动按钮 -> A starttForResult B ...

编辑

我现在怀疑我是否需要使用 singleTask。

是真的吗,无论我从哪里开始我的活动由 android 而不是我编码的意图,android 总是会重新启动我的应用程序并且不会有我的活动的多个实例?

如果是这样的话,一切都很好-ood :)

0 投票
1 回答
1299 浏览

android - 来自应用程序启动器的 Android onNewIntent 给了我最后的意图

我有一个应用程序是 SingleTask 并且能够收听“测试”方案。

如果我单击按钮(请参阅代码),我会重新启动自己并调用 onNewIntent 给我“测试”意图(现在我可能会通过推送片段来对此做出反应)

现在,如果我按主页然后打开应用程序启动器并重新输入我的应用程序,我希望调用 onNewIntent 但意图为空,因为我不想重做我的操作(例如推送片段)。但是 onNewIntent 给了我用于启动我的活动的最后一个意图,即“测试”意图。

我应该怎么做才能防止推送相同的片段?有没有不使用我自己的 ID 的好方法。

0 投票
2 回答
1192 浏览

android - 如何实时查看安卓APP的后台堆栈?

我正在使用 Android,当我测试不同的活动/意图标志或启动模式时,我无法获得预期的行为(特别是当不同的活动具有不同的标志时)。而且我已经非常仔细地阅读了谷歌开发指南,但仍然无法解释我得到的结果。

我想知道是否有一些调试工具或一些方法可以实时检查不同任务的后台堆栈?

谢谢你。

0 投票
3 回答
2813 浏览

android - 我单击 HOME 按钮,程序最小化;但是当我按下应用程序图标时,程序会启动两次

我有以下问题:

当我按下 Android HOME 键时,我可以看到“桌面”和我的应用程序图标。然后我按下我的应用程序图标,我的应用程序启动了两次。我不想打开我的应用程序两次。

我的程序是如何工作的:

我有 4 个活动(A、B、C、D)。

A - 主要活动:它是第一个打开的。它打开了另一个有很多按钮的活动。这就像 Java 的 main() 方法。我显示一个 SplashScreen 并调用另一个 Activity。然后我完成我的活动“A”。

B - 菜单屏幕:在这个活动中,我有一些按钮,比如菜单。我有一个配置按钮、更新按钮和登录按钮。当我单击登录按钮时,我完成了此活动并打开登录屏幕(活动“C”)。

C - 登录屏幕:用户输入登录名和密码。如果登录成功,我完成这个活动并打开活动“D”。

D - 应用程序主屏幕:它一直保持打开状态并启动另一个活动。当我想关闭我的应用程序时,我完成了这个。

PS:我尝试更改launchMode标志(androidManifest.xml),但没有奏效。

我的 AndroidManifest.xml 如下:

这是我的活动“A.java”来源:

我不想打开我的应用程序两次。

提前致谢!

0 投票
3 回答
810 浏览

android - Android 从 Widget 启动现有应用程序实例

我有一个包含多个活动的应用程序......所以假设用户正在导航活动堆栈 A->B->C。然后按主页按钮。现在,当用户单击小部件时,我只想将我的应用程序的现有/当前实例带到前台。我不想要应用程序的新实例。我希望活动 C 回到前台。

我尝试了launchMode,"singleTask" | "singleInstance"但这并没有解决我想要的要求,因为它清除了当前实例并创建了一个带有活动A的新实例。

任何想法如何解决这个问题?

非常感谢!

0 投票
3 回答
39629 浏览

android - 关于android启动模式“singleTask”

我阅读了 android 开发人员指南和互联网上的一些文章,我仍然对singleTask launchmode. 举个例子:

用户启动 App1,android 启动一个新任务。假设 App1 按以下顺序创建活动:

这就是 task1 的样子。

然后用户单击主页按钮并选择启动 App2,因此 task1 进入后台,android 启动一个新任务:task2,用户执行以下操作:

现在让我们说ActivityE尝试启动ActivityB,并ActivityB具有启动模式singleTask

我的理解是 task1 再次进入前端,而 task2 进入后台。task1 现在看起来像这样:

意思是:

  1. ActivityC将从 task1 中删除,ActivityB 成为顶部 Activity 。

  2. 如果用户现在单击“返回”按钮,他将返回ActivityA任务 1 而不是返回ActivityE任务 2

我对吗?

谢谢

0 投票
2 回答
1187 浏览

android - LaunchMode & 最近的应用原理

我有一个 WidgetResultActivity 和一个 NotificationResultActivity,我设置了它们的启动模式=singleInstance。但它们有不同的行为:WidgetResultActivity 不会从 RECENT 打开,而 NotificationResultActivity 将始终从 RECENT 打开(它是单独打开的!没有 MainActivity)。那么如何禁止从 REcent 打开 NotificationResultActivity,谢谢。

编辑:当我从通知中打开时,请查看我的 ATester 应用程序......

测试代码:

测试清单:

测试图像:

第一个:在此处输入图像描述

第二:在此处输入图像描述

第三:在此处输入图像描述

第四:在此处输入图像描述

编辑:我真正需要的是 DIALOG BEHEVIOR LIKE Activity,我将在另一篇文章中询问。@WebnetMobile.com,同样感谢你们。

0 投票
1 回答
576 浏览

android - android:launchMode="singleTask" 不会阻止多个根活动共存

我的目的是确保任务中的根活动在任何情况下都只有一个实例。所以我设置了 android:launchMode="singleTask",它在大多数情况下都能正常工作。

但是,如果我将我的任务快速切换到其他人并多次切换回来,launchMode 设置似乎失去了效果。我观察到在前一个被销毁之前创建了一个新的活动实例,如下所示。

有人可以帮忙提供一个完美的解决方案,以确保在任何条件下都存在一个根活动实例吗?

提前致谢