问题描述
我有两个安卓应用,我们称它们为应用 A 和应用 B。
在应用程序 A 中,我创建了一个共享意图,如下所示:shareIntent=Intent.createChooser(sendIntent,null); // sendIntent contains data to share.
这将用于将数据传递给应用程序 B。
应用 B 的 MainActivity(它唯一的 Activity)配置为具有 launchMode="singleTask"
。
行为 1:
如果从应用程序 A 中我使用 startActivity(shareIntent)
并且应用程序 B 在后台,它会进入前台并使用 onNewIntent 方法处理意图。如果应用 B 不在后台,它会为应用 B 启动一个新任务,其初始意图设置为从应用 A 传递的 sendIntent。
行为 2:
如果从应用 AI 使用 startActivityForResult(shareIntent,SUCCESS_CODE)
,应用 B 是否在后台无关紧要,它会重新启动,而且应用 B 的 MainActivity
被启动并推送到应用 A 的后台堆栈,它不会在单独的任务中开始,在此之后我有 2 个应用程序 B 的 MainActivity,一个我保留在后台,一个在应用程序 A 中启动。
为什么 startActivityForResult
会导致行为 2?
如果应用 B 的开发者无法控制应用 A 如何启动它以始终显示行为 1,那么作为应用 B 的开发者可以做些什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)