Android 如果浏览器启动我的活动,如何从活动堆栈中删除浏览器?

Android 如果浏览器启动我的活动,如何从活动堆栈中删除浏览器?,android,android-activity,android-intent,Android,Android Activity,Android Intent,我们一直在研究如何从电子邮件中的链接启动我们的应用程序,我们有一些非常有效的方法。只有使用http/https方案的URL才能正常工作,因此我们在服务器应用程序中编写了一个小型“重定向器”,它可以看到我们来自Android浏览器,并使用应用程序启动的方案重定向到URI。所有这些都很有效 唯一不好的部分是,浏览器是在单击电子邮件中的链接和由于重定向而弹出的应用程序之间启动的,当用户在使用我们的应用程序后点击后退按钮返回其电子邮件程序时,浏览器会显示给用户。浏览器保留在空白页上,用户可能会对此感到困

我们一直在研究如何从电子邮件中的链接启动我们的应用程序,我们有一些非常有效的方法。只有使用http/https方案的URL才能正常工作,因此我们在服务器应用程序中编写了一个小型“重定向器”,它可以看到我们来自Android浏览器,并使用应用程序启动的方案重定向到URI。所有这些都很有效

唯一不好的部分是,浏览器是在单击电子邮件中的链接和由于重定向而弹出的应用程序之间启动的,当用户在使用我们的应用程序后点击后退按钮返回其电子邮件程序时,浏览器会显示给用户。浏览器保留在空白页上,用户可能会对此感到困惑,不知道再次按“后退”按钮返回电子邮件

当我们的应用程序从链接启动时,浏览器将处理URL,重定向将使我们的应用程序像往常一样出现。然而,在我的应用程序中是否有一种方法可以告诉Android,我的应用程序有效地替换了后堆栈上的浏览器,这样,如果按下“后退”按钮,用户将返回电子邮件程序,就好像浏览器一开始没有弹出一样


提前感谢。

,可以使用中间的方法跳过中间的整个浏览器。您可以注册要侦听的特定架构和用于启动应用程序的给定url。这将直接启动您的应用程序,而不将浏览器放在中间。YouTube应用程序使用类似的方法,我确信可以直接在YouTube应用程序中打开视频。这是一个可能为您提供实施此功能的良好方向的问题。

谢谢。我已经准备好了一个意向过滤器。问题在于,在电子邮件中使用自定义的“scheme”(在://之前的部分)不起作用。此外,由于我们可以使用应用程序连接到多个服务器,因此也不能使用包含服务器主机名的意图过滤器。这就是youtube链接的工作原理,因为youtube.com是主机。如果我能用URL路径的一部分制作一个意图过滤器,那可能对我们有用。但我认为我们做不到。