我目前正在添加从另一个应用程序启动我的应用程序的选项。从另一个应用程序启动时,该应用程序的外观和行为会有所不同。入口点活动被传递一个不同的意图动作和一些额外的东西。我需要为其他活动保存这些额外内容,但我无法将它们保存在应用程序中,因为这会在从启动器启动时影响应用程序。我能想到的唯一解决方案是为每个新活动传递额外内容:intent.putExtras(getIntent()); 因此维护当前堆栈的状态。有没有更好的办法?谢谢,莎伦。
问问题
96 次
2 回答
1
Because that will affect the app when launched from the launcher.
我不这么认为,当应用程序从启动器启动时,您通过的意图getIntent()
包含"android.intent.action.MAIN"
. 因此,您可以运行检查以查看它是从启动器还是其他应用程序启动的。然后,您可以在单个 sharedpreference xml 文件中恢复 extras 中包含的值(如果其他应用程序启动了它),以便所有其他活动可以方便地访问它们。
于 2013-01-01T13:21:13.503 回答
0
我以不同的方式解决了这个问题。每当启动应用程序时,都会向先前启动的活动发送一个事件。然后堆栈被重定向到一个特殊的活动,通知用户该应用程序已在其他地方启动。此活动有一个重新启动应用程序的按钮。这样应用程序就不能并行运行。不确定这是不是最好的解决方案,但它可以工作并且可以防止不良的应用程序状态。沙龙。
于 2013-01-02T14:38:01.307 回答