【发布时间】:2017-02-28 10:31:27
【问题描述】:
这张图片对理解
launhmode singleTask 提供的功能,取自 here
但是,我在相同的应用程序中理解这一点,我在理解上有问题 如果两个任务都属于两个不同的应用程序会怎样
令人困惑的场景(虚构),
- 我正在浏览一个应用程序,该应用程序提供了一个发送操作 电子邮件,我选择了“发送电子邮件”选项。
- 我手机的默认“电子邮件应用程序”将被选中,并且它的活动(即 声明为单任务)将被打开。
在我输入电子邮件内容时,我切换到某个聊天应用程序,然后 该应用程序崩溃并为我提供了报告问题的选项 通过电子邮件发送给开发人员,现在当我选择 'Report' 时,我的电子邮件 应用程序(这是相同的默认电子邮件应用程序)将被打开。
现在,由于电子邮件应用程序的根活动是单任务,我的内容将 我写的哪个对我可见?
这次主要是,任务/堆栈属于两个不同的应用程序。
【问题讨论】:
-
我对此表示怀疑,您的内容应该保存为草稿,并且应该在其中加载带有收件人地址的新邮件活动虽然我觉得上面句子中的“应该”必须更改为“将”
-
@Neji 同样的“怀疑”是让我在这里提出这个问题的原因:D.
-
如果您的 singleTask 活动不需要启动它,它将获得 onNewIntent() 回调。在 onNewIntent() 中,它应该将以前的邮件内容存储到草稿中,并清除其中写入的内容,同时放置正确的收件人地址
-
如果使用 singleTask 启动模式调用相同的活动,则 onNewIntent() 将使用其 Intent 值调用,但如果您从两个不同的应用程序打开相同的活动,我认为它可能有不同的任务关联为什么你会发现这种行为。
-
@Chetan 我从来没有遇到过这种情况,我的问题基本上是'如果发生这种情况'
标签: android launchmode