【发布时间】:2014-05-26 07:37:56
【问题描述】:
我创建了一个带有主要活动的浏览器应用程序,它响应以下意图:
<intent-filter>
<data android:scheme="http"/>
<data android:scheme="https"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
如果我选择我的应用程序,则在其他任务(gmail、sms)的 url 上单击,活动将在与调用任务相同的任务中打开。 当我选择不同的浏览器(Mozila firefox、chrome、dolphine)时,它们会在不同的任务中打开。
查看其他浏览器清单,我看到没有人使用 android:launchMode="singleTask"。
我不想使用单任务标志,因为它不被谷歌推荐,也让我有其他问题。
我试图了解其他浏览器是如何做到的,但没有弄明白。
有什么想法吗?有没有其他方法可以在不使用 singleTask 标志的情况下在不同的任务中打开我的活动?
【问题讨论】:
-
也许您可以在启动活动的意图上设置一个标志:Intent.FLAG_ACTIVITY_NEW_TASK 或 Intent.FLAG_ACTIVITY_SINGLE_TOP 查看文档:developer.android.com/guide/components/…developer.android.com/reference/android/content/Intent.html
-
不,因为发送活动的应用程序不是我的(例如 gmail)
-
@user3398598,Guy 的建议是有道理的:您应该将它与 Emanuel 的答案结合起来 - 请参阅我的评论。我知道您已经实施了一种解决方法,但是这种方法更简单恕我直言,仅供参考。