我有两个 android 应用程序,我们称它们为应用程序 A 和应用程序 B。
在应用程序 AI 内部创建一个共享意图,如下所示:
shareIntent=Intent.createChooser(sendIntent, null); // sendIntent contains data to share.
这将用于将数据传递给应用程序 B。
应用程序 B 的 MainActivity(它唯一的 Activity)配置为具有launchMode="singleTask"
.
行为 1:
如果从应用程序 AI 使用startActivity(shareIntent)
并且应用程序 B 在后台,它会进入前台并使用 onNewIntent 方法处理意图。如果应用 B 不在后台,它会为应用 B 启动一个新任务,其初始意图设置为从应用 A 传递的 sendIntent。
行为2:
如果从app AI使用startActivityForResult(shareIntent, SUCCESS_CODE)
,app B是否在后台无关紧要,它会重新启动,而且MainActivity
app B的启动并推送到app A的backStack,它不会在a中启动单独的任务,在此之后我有 2 个应用程序 B 的 MainActivity,一个我保留在后台,一个在应用程序 A 内启动。
为什么会startActivityForResult
导致行为 2?
作为无法控制应用 A 如何启动它以始终显示行为 1 的应用 B 的开发人员,可以做些什么?