繁体   English   中英

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

[英]Maintain state upon return to app on launcher apps :: Android?

我创建了一个具有主屏幕按钮功能的Android启动器应用程序,它将带您离开启动器并进入标准的Android主屏幕。 我使用以下代码片段进行此操作:

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

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

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

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

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

android:launchMode="singleTask"

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

<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

这导致任务被简化为根活动。 您对启动LAUNCHER活动时设置的Intent标志没有任何控制权,因此您无法阻止这种情况的发生。

通常,LAUNCHER活动具有launchMode="singleInstance" 这意味着,当启动器启动活动时,该活动将终止于另一个任务。 LAUNCHER活动始终独自完成一项任务。 这样一来,您就可以始终将LAUNCHER活动置于前台(因为它的任务中没有其他活动)。

您可能需要重新考虑您的体系结构。 抱歉。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM