7

コードを介して「Local」BroadcastReceiver を宣言することは可能ですが、LocalBroadcastManager.Ex を介して発行されたインテントを受信します。

LocalBroadcastManager.getInstance(this).registerReceiver(new FooReceiver(), new IntentFilter("foo_intent_filter"));

マニフェスト.xml (cleaner)を介してそのようなレシーバーを宣言することは可能かどうか疑問に思います。

「マニフェスト方法」を使用すると、受信者はインテントを「受信」していません。

  <receiver
        android:name="FooReceiver"
        android:enabled="true"
        android:exported="false" >
        <intent-filter>
            <action android:name="foo_intent_filter" />
        </intent-filter>
  </receiver>

何か不足していますか?または、コードウェイが唯一の実行可能なソリューションです。

ありがとう

4

1 に答える 1

6

manifest.xml (cleaner) を介してそのようなレシーバーを宣言することは可能かどうか疑問に思います。

まず、それは不可能です。

第二に、マニフェストに登録することは、それが「よりクリーン」であることとはほとんど関係ありません。プロセスが実行されていないときにブロードキャストに応答できるように、Android が独自にレシーバーをインスタンス化できるようにするためです。そして、あなたが引用した特定の例では、システム上のすべてのアプリがブロードキャストを送信できるようにすることです. どちらも には関係ありませんLocalBroadcastManager

于 2014-06-06T12:28:37.663 に答える