我有一个相当简单的问题,似乎无法找到解决方案。我有一个包含多个活动的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://
->与活动2的深层链接
domain://random
->与活动2的深层链接
domain://somewhereElse
->与活动2的深层链接
现在domain://可以解析到activity2了。
感谢您的帮助,谢谢!
答案 0 :(得分:1)
<intent-filter>
element支持整数priority
attribute。默认情况下,其值为0
,因此您可以在“全部捕获”过滤器上设置负优先级,以确保其在所有其他过滤器之后运行:
<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>