【问题标题】:Intent Filters with pathPattern带有 pathPattern 的意图过滤器
【发布时间】:2019-12-09 17:12:42
【问题描述】:

我有三个活动应该在三种类型的链接上打开

FirstActivity https://example.com/orders
SecondActivity https://example.com/orders/95
ThirdActivity https://example.com/orders/95/edit

在意图过滤器数据中,我指定了以下android:pathPattern

FirstActivity android:pathPattern="/orders"
SecondActivity android:pathPattern="/orders/.*"
ThirdActivity android:pathPattern="/orders/.*/edit"

最终

FirstActivity 仅在第一个链接上打开 - 正确

ThirdActivity 仅在第三个链接上打开 - 正确

SecondActivity 在第二个和第三个链接上打开 - 错误

问题是点击https://example.com/orders/95/edit 会打开对话框,该对话框提供打开SecondActivity 和ThirdActivity。我只需要打开 ThirdActivity。

我应该在 SecondActivity 的意图过滤器中指定什么,以便它只在第二个链接上打开?

【问题讨论】:

  • 您是说点击example.com/orders/95/edit 会同时打开 SecondActivity 和ThirdActivity?
  • 是的,下面会出现一个对话框,该对话框与浏览器一起提供了另外两个用于打开应用程序的快捷方式。第一个快捷方式打开 SecondActivity,第二个是 ThirdActivity

标签: android


【解决方案1】:

在与您的第三个链接匹配的<intent-filter> 标记中,添加android:priority 属性:

<intent-filter
    android:priority="1"
    ...>

    <data ... />

</intent-filter>

这应该使得,当两个不同的过滤器匹配给定的链接时,系统只显示其中一个。

【讨论】:

  • 不行,还有两个快捷键。
猜你喜欢
  • 1970-01-01
  • 2021-08-09
  • 2023-03-21
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多