14

BroadcastReceiverインテント フィルターなしで宣言している Android 広告ネットワーク SDK をいくつか見ました。このようなもの:

<receiver android:name="com.example.SampleReceiver" />

私の推測では、そのようなレシーバーは考えられるすべてのイベントをキャプチャーします。だから私はそれを自分でやろうとして、作成しましたSampleReceiver:

public class SampleReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        System.out.println("Event captured: " + intent.getAction());
    }
}

アプリを起動し、電話でさまざまなアクションを実行していくつかのイベントを発生させようとしましたが、onReceive()一度も呼び出されていないことに気付きました。

問題は、インテント フィルターのない BroadcastReceiver はどのように機能するかということです。コードを介してインテント フィルタを作成する必要があるのでしょうか。もしそうなら、どのように?そうでない場合、イベントを受信して​​いないのはなぜですか? 何が起きてる?

4

2 に答える 2

15

インテント フィルターがない場合、何かを受け取る唯一の方法は、レシーバーを明示的に呼び出すことです。これは次のようになります。

context.sendBroadcast(new Intent(context, MyBroadcastReceiverClass.class));

別の男が次の投稿でこの質問にすでに回答しています: https://stackoverflow.com/questions/10051256/broadcast-receiver-not-recoming

于 2012-08-10T21:16:07.950 に答える
1

次の質問/回答はあなたにいくつかの手がかりを与えるはずだと思います:

すべてのインテントに一致するAndroidでIntentFilterを作成します

于 2012-08-10T12:16:51.770 に答える