0

我有一个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);
4

1 回答 1

2

哎呀!我想我应该更努力地阅读 API... registerReceiver(null, intentFilter)会做到的!

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

于 2012-07-26T18:33:31.560 回答