gpt4 book ai didi

LAUNCHER Activity 的Android默认launchMode?

转载 作者:IT老高 更新时间:2023-10-28 23:23:32 25 4
gpt4 key购买 nike

manifestlauncher activitylaunchMode 是否被忽略?android 文档说默认 launchMode 是“标准”,但如果这将应用于应用程序的主要 Activity ,这对我来说不是逻辑,因为每次你启动应用,会在应用的instance中创建另一个task

最佳答案

好吧,我自己深入研究了 Android 资源并发现了以下内容。

启动器使用 LauncherAppsService 中的方法 startActivityAsUser 启动应用程序。 Intent 是使用这些行构建的:

Intent launchIntent = new Intent(Intent.ACTION_MAIN);
launchIntent.addCategory(Intent.CATEGORY_LAUNCHER);
launchIntent.setComponent(component);
launchIntent.setSourceBounds(sourceBounds);
launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

根据 Android 文档,标志 FLAG_ACTIVITY_NEW_TASK 表示:

When using this flag, if a task is already running for the activity you are now starting, then a new activity will not be started; instead, the current task will simply be brought to the front of the screen with the state it was last in.

这会有效且无条件地覆盖应用程序中指定(或省略为默认行为)的 launchMode,并忽略此属性。

我认为这表明文档不够清晰(或完整)。如果没有对核心源代码进行如此深入的调查,每个人都会时不时地得到意想不到的结果。

关于LAUNCHER Activity 的Android默认launchMode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com