如何在启用BroadcastReceiver时获取粘性广播数据?

时间:2012-07-26 18:18:41

标签: android android-intent

我在清单上注册了BroadcastReceiver,并且最初被禁用android:enabled="false"

清单:

<receiver
            android:name="com.sample.name.MainWidgetBroadcastReceiver"
            android:enabled="false"
            android:exported="false" >
            <intent-filter>
                <action android:name="com.sample.name.intent.action.METADATA_UPDATE" />
            </intent-filter>
        </receiver>

我收到的意图com.sample.name.intent.action.METADATA_UPDATE很粘。启用接收器后,如何获取此粘性数据?如果解决方案触发BroadcastReceiver或者我必须自己动手,那就没问题了。我不想只是为了获得这些数据而注册广播......

PackageManager pm = context.getPackageManager();
        pm.setComponentEnabledSetting(
                new ComponentName(context, MainWidgetBroadcastReceiver.class),
                PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
                PackageManager.DONT_KILL_APP);

1 个答案:

答案 0 :(得分:2)

糟糕!我想我应该更努力地阅读API ...... registerReceiver(null, intentFilter)会做到这一点!

  

如果你知道你注册的意图是粘性的,你可以   为您的接收器提供null。在这种情况下,没有注册接收器    - 该函数只返回匹配过滤器的粘性Intent。在多个匹配的情况下,具有与上述相同的规则   应用