活动堆栈状态

时间:2013-01-01 12:18:44

标签: android android-activity stack state

我目前正在添加从其他应用启动我的应用的选项。 从其他应用启动时,该应用的外观和行为会有所不同。 入口点活动传递了不同的意图操作和一些额外的操作。 我需要为其他活动保存这些额外内容,但我无法将它们保存在应用程序中, 因为从启动器启动时会影响应用程序。 我能想到的唯一解决方案是为每个新活动传递额外内容: intent.putExtras(getIntent()); 因此保持当前堆栈的状态。 有没有更好的办法? 谢谢, 沙龙。

2 个答案:

答案 0 :(得分:1)

Because that will affect the app when launched from the launcher.

我不这么认为,当应用程序从启动器启动时,您通过getIntent()获得的意图包含"android.intent.action.MAIN"的操作。因此,您可以运行检查以查看它是从启动器还是其他应用程序启动的。 然后,您可以在单个sharedpreference xml文件中还原extras中包含的值(如果其他应用程序启动它),以便所有其他活动可以方便地访问它们。

答案 1 :(得分:0)

我以不同的方式解决了这个问题。 每当启动应用程序时,先前启动的活动都会发送一个事件。 然后将堆栈重定向到特殊活动,该活动通知用户该应用程序已在其他位置启动。 此活动有一个重新启动应用程序的按钮。 这样,应用程序无法并行运行。 不确定它是最好的解决方案,但它可以工作,它可以防止不良的应用程序状态。 沙龙。