我有一个相当简单的问题,我似乎无法找到解决方案。我有一个Android应用程序,有多个活动。我希望形成特定活动的特定深层链接,并将所有其他深层链接指向“全能”类型活动。
这是我的表现:
<activity
android:name=".views.activity1">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:scheme="domain"
android:host="specificPlace" />
</intent-filter>
</activity>
<activity
android:name=".views.activity2">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:scheme="domain"
android:host="*" />
</intent-filter>
</activity>
所以我想要的是以下内容:
domain://specificPlace
- >与活动1的深层链接。
domain://
- >与activity2的深层链接
domain://random
- >与activity2的深层链接
domain://somewhereElse
- >与activity2的深层链接
现在域://任何东西都解析为activity2。
任何帮助表示赞赏,提前谢谢!
<intent-filter>
element支持整数priority
attribute。默认情况下,它的值为0
,因此您可以在“catch-all”过滤器上设置负优先级,以确保它在所有其他过滤器之后运行:
<intent-filter android:priority="-1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:scheme="domain"
android:host="*" />
</intent-filter>
我自己没试过,但似乎它应该有效。我不确定的部分是priority
属性是否处理负值。如果没有,您可以将所有非“全能”过滤器放在正面优先级:
<intent-filter android:priority="1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:scheme="domain"
android:host="specificPlace" />
</intent-filter>