0

クラスで、アクティビティにインテントを送信したい:

Intent broadcast = new Intent();
broadcast.setAction("coinchutc.ANNONCE");
Log.d("JoueurAgent", "Sending broadcast " + broadcast.getAction());
context.sendBroadcast(broadcast);

ログはメッセージを正しく出力できます。

Activity クラスで、自己定義のブロードキャスト レシーバーを宣言しました。

myReceiver = new MyReceiver();

クラス MyReceiver は次のようになります。

private class MyReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d("PartieActivity", "receive");
        String action = intent.getAction();

        if (action.equalsIgnoreCase("coinchutc.ANNONCE")) {
            Log.d("PartieActivity", "Receive " + action);
            annoncer();
        }
    }
}

クラスの onCreate() メソッドに次のようなアクティビティを登録しました。

IntentFilter annonceFilter = new IntentFilter();
annonceFilter.addAction("coinchutc.ANNONCE");
registerReceiver(myReceiver, annonceFilter);

しかし、MyReceiver クラスの Log は何も出力しません。

このような理由が他に考えられる理由を知っている人はいますか?前もって感謝します!

4

2 に答える 2

1

マニフェストにこれはありますか?

    <receiver android:name="xxx.MyReceiver">
        <intent-filter>
            <action android:name="coinchutc.ANNONCE" />
        </intent-filter>
    </receiver>
于 2013-09-03T00:13:54.140 に答える
0

私もそのような問題に遭遇しました。そして、アクション名を変更してみましたが、レシーバーはインテントを受け取ることができます。理由はわかりませんが、試してみてください。

于 2014-01-23T07:37:28.330 に答える