3

アプリケーションでカスタム インテントの使用を開始しましたが、少し問題が発生しました。

カスタム インテントを送信するときにブロードキャスト レシーバーを登録すると、問題なくインテントをキャッチできます。

ただし、インテントを再度送信すると問題が発生するようです。Broadcast Reciever はインテントの 2 つのイベントを登録するようです。そのため、インテントが 3 回目に送信されると、3 回受信します。

これは私のアプリケーションに重大な問題を引き起こしています。これは正常なのか疑問に思っていましたが、対処する方法はありますか?

これが私のコードです:


インテントを送信するには:

Intent i = new Intent();
i.setAction(SIP_INCOMING_CALL_CANCEL_INTENT);
sendBroadcast(i);

インテントを受け取るには:

sipIncomingListener = new BroadcastReceiver(){

   @Override
   public void onReceive(Context context, Intent intent) {
      String action = intent.getAction(); 

      if(CallDialogActivity.SIP_INCOMING_CALL_ANSWER_INTENT.equals(action)){
         Log.d("SIPENGINE", "CALL CONNECTED SENT FROM INITINCOMINGLISTENER()");
      }  
   };

IntentFilter filter = new IntentFilter(CallDialogActivity.SIP_INCOMING_CALL_CANCEL_INTENT);
registerReceiver(sipIncomingListener, filter);

インテントが一度だけ起動されるようにする方法はありますか??

4

1 に答える 1

2

なぜこの問題が発生するのかわかりませんが、インテントを処理するためにBroadcast(Receiver)が必要であると確信していますか?説明してもらえますか、なぜそうするのですか?

問題に戻りましょう。シンプルでミニマルなプロジェクトを提供できますか?問題はあなたが提供したコードにはないと思います。

于 2010-03-01T13:40:50.243 に答える