通过操作和额外过滤Android广播接收器

时间:2014-07-09 15:38:19

标签: android android-intent broadcastreceiver intentfilter

我可以通过操作过滤Android应用程序中的广播。例如:

 <receiver android:name=".receiver.TasksModifiedReceiver">
        <intent-filter>>
            <action android:name="myapp.TASKS_MODIFIED_ACTION" />
        </intent-filter>
    </receiver>

但是,我可以通过&#34; extras&#34;进一步过滤它们吗?在意图中提供的是什么?

例如,应用程序A发送广播:

Intent taskBroadcastIntent = new Intent();
taskBroadcastIntent.setAction(ApplicationConstants.TASKS_MODIFIED_BROADCAST_ACTION);
taskBroadcastIntent.putExtra("TaskType", taskType);
taskBroadcastIntent.putExtra("UserName", CommonCache.getCommonCache().getValue(CommonCache.USER_NAME));
taskBroadcastIntent.putExtra("Environment", Constants.ENVIRONMENT);
context.sendBroadcast(taskBroadcastIntent);

现在,应用程序B只应接收广播,如果&#34;任务类型&#34; extra设置为&#34; task1&#34;, 和应用程序C只应接收广播,如果&#34;任务类型&#34; extra设置为&#34; task2&#34;。

任何有用的建议将不胜感激。 我在Android开发人员文档中找不到此功能。

1 个答案:

答案 0 :(得分:0)

我不认为这是可能的。但这就是我要做的,

创建一个通用接收器,您将收到应用程序上下文和意图。因此,使用getStringExtra(&#34; TaskType&#34;)获取taskType,并根据该触发器获取相应的广播意图。