使用android:priority设置的intent-filter
问题描述:
我测试意图过滤器android:priority="0"
和意图过滤器android:priority="20"
由android.intent.category.HOME
。我列出以下信息,使用android:priority设置的intent-filter
<activity android:name=".TestHomeActivity"
android:label="@string/app_name">
<intent-filter android:priority="0">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
当完成系统启动,它总是弹出一个用于选择这个意图首选活动对话框(ResolveActiivty)...
任何人都可以帮助吗?是否为android:priority
错误使用?
谢谢!
答
当系统解决意图时,我并没有真正看到android:priority
被考虑在内。我只是尝试在我使用的意图过滤器上设置优先级,但系统仍然给了我分辨率弹出对话框,无论我将意图过滤器的优先级设置为什么值。
我想你只需要选择你想要使用的主屏幕活动(即你的)并选择“默认使用...”复选框。
答
从你的代码片段看来,你正在尝试启动你的应用程序。优先级是应给予父组件w.r.t处理过滤器所描述类型的意图的优先级。
它提供有关活动响应与过滤器相匹配的意图相对于其他活动的能力的信息。它还控制执行广播接收器以接收广播消息的顺序。 只有在您确实需要强制接收广播的特定顺序,或者希望强制Android将某项活动优先于其他活动时才使用此属性。
该值必须是整数,例如 “100”。较高的数字具有较高的优先级 。
答
android:priority
仅用于OrderedBroadcast意图,而不是无序广播的解析顺序。用户选择给定操作的默认活动,这就是弹出对话框的原因。所以,是的,你错误地使用了priority
。
现在我不记得我尝试覆盖的优先级,但请查看来自Android开发人员的有用答案:http://stackoverflow.com/questions/2023811/catching-market-search-intents#comment -1947212 –