Intent过滤器具有不同的操作

时间:2015-01-20 09:35:20

标签: android android-intent broadcastreceiver intentfilter

以下BroadcastReceiver s:

之间有什么区别
  1. ReceiverA有一个意图过滤器,有两个动作

    <receiver android:name="com.example.somepackage.ReceiverA">
        <intent-filter>
            <action android:name="com.example.somepackage.intent.actionA"/>
            <action android:name="com.example.somepackage.intent.actionB"/>
        </intent-filter>
    </receiver>
    
  2. ReceiverB有两个意图过滤器,每个过滤一次

    <receiver android:name="com.example.somepackage.ReceiverB">
        <intent-filter>
            <action android:name="com.example.somepackage.intent.actionA"/>
        </intent-filter>
        <intent-filter>
            <action android:name="com.example.somepackage.intent.actionB"/>
        </intent-filter>
    </receiver>
    
  3. 关于ReceiverAReceiverBactionAactionB的功能如何相互不同?

1 个答案:

答案 0 :(得分:1)

AFAIK的功能,它们都是相同的:它们被注册为正在聆听actionA and actionB

ReceiverA就像:

 IntentFilter intentFilter = new IntentFilter();
 intentFilter.addAction(actionA);
 intentFilter.addAction(actionB);
 registerReceiver(ReceiverA, intentFilter);

ReceiverB就像:

registerReceiver(ReceiverB, intentFilterActionA);
registerReceiver(ReceiverB, intentFilterActionB);