gpt4 book ai didi

android - 在启动器应用程序上返回应用程序时保持状态::Android?

转载 作者:行者123 更新时间:2023-11-30 02:39:01 25 4
gpt4 key购买 nike

我创建了一个 Android 启动器应用程序,它具有主页按钮功能,可以让您离开启动器并转到标准的 Android 主屏幕。我使用以下代码 fragment 执行此操作:

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

我遇到的问题是,当用户重新启动启动器应用程序时,它会从头开始。我没有返回到我发起的同一个 Activity 。我怀疑这是因为该应用程序是一个启动器,所以它的行为与正常应用程序不同,后者的 Activity 进入后台并可以返回。相反,行为是它完成堆栈任务中的所有 Activity 。

有什么预防或解决此问题的建议吗?

对于那些询问 list 的人,这些是创建启动器的步骤

1) 我在 Activity 中添加了以下属性

android:launchMode="singleTask"

2) 我在 intent 过滤器中添加了以下类别

<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.HOME" />

最后,我创建了一个演示来演示我所描述的问题。这里:www.mediafire.com/download/qu5nfzoaj8cqjtu/LauncherDemo.zip

最佳答案

我看了你的演示。不幸的是,这行不通。

当 Android 启动 LAUNCHER 时,它会设置以下 Intent 标志:

FLAG_ACTIVITY_RESET_TASK_IF_NEEDED

这会导致任务被剥离到根 Activity 。您无法控制启动 LAUNCHER Activity 时设置的 Intent 标志,因此您无法阻止这种情况的发生。

一般来说,LAUNCHER Activity 有launchMode="singleInstance"。这意味着当 LAUNCHER 启动一个 Activity 时,该 Activity 将在另一个任务中结束。 LAUNCHER Activity 始终在一个任务中。这样您就可以始终将 LAUNCHER Activity 置于前台(因为它的任务中没有其他 Activity )。

您可能需要重新考虑您的架构。对不起。

关于android - 在启动器应用程序上返回应用程序时保持状态::Android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26045476/

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