JDS*_*JDS 13 android broadcastreceiver android-intent
简单的问题 - 我可以将单个BroadcastReceiver注册到多个意图操作吗?这是我正在考虑的事情:
<receiver android:name=".myReceiver">
<intent-filter android:priority="1000000">
<action android:name="android.intent.action.MEDIA_BUTTON" />
<action android:name="android.intent.action.ACTION_HEADSET_PLUG" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
所以在myReceiver类的' onReceive中,我能检查BroadcastReceiver两者myReceiver吗?
谢谢.
adv*_*tej 29
我猜你可以有多个s,每个都有自己的动作元素.
<receiver android:name=".myReceiver">
<intent-filter android:priority="1000000">
<action android:name="android.intent.action.ACTION_HEADSET_PLUG" />
</intent-filter>
<intent-filter android:priority="1000000">
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
然后在接收器的onReceive中检查Intent的动作.
是的,一个BroadcastReceiver可以通过多个动作接收意图.你的例子是有效的.您可能在一个过滤器中有多个"操作".此外,在这种情况下,它比看起来更安全的方式更合适:用单个动作创建几个过滤器(如@advantej的答案中所提出的).在过滤器中执行多个操作可以清楚地表明您期望执行多个操作之一(逻辑"或").
" Intent和Intent过滤器 "中的这些单词解释了在一个与多个intent过滤器之间选择更复杂的情况:
可以创建一个包含多个<action>,<data>或<category>实例的过滤器.如果这样做,您只需要确定该组件可以处理这些过滤器元素的任何和所有组合.
如果要处理多种意图,但只能处理动作,数据和类别类型的特定组合,则需要创建多个意图过滤器.
请在此处查看Intent过滤器的不同示例:AndroidManifest.xml
| 归档时间: |
|
| 查看次数: |
18097 次 |
| 最近记录: |