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 を指定できます。この場合、レシーバーは登録されません。関数は、フィルターに一致するスティッキー インテントを返すだけです。複数の一致の場合、上記と同じルールが適用されます。

于 2012-07-26T18:33:31.560 に答える