Android - Интенты как-то увеличиваются? - PullRequest
3 голосов
/ 01 марта 2010

Я начал использовать настраиваемые намерения в своем приложении, и у меня возникла небольшая проблема.

Когда я отправляю настраиваемое намерение, я регистрирую широковещательный приемник и улавливаю намерение без проблем.

Однако при повторной отправке намерения возникают проблемы, кажется, что Broadcast Reciever регистрирует два события намерения и так далее, поэтому, если намерение отправлено в третий раз, я получаю его 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);

Есть ли способ убедиться, что Намерение срабатывает только один раз ??

1 Ответ

2 голосов
/ 01 марта 2010

Я не уверен, почему у вас есть эта проблема, но вы уверены, что вам нужен широковещательный (приемник) для обработки намерений? Не могли бы вы объяснить, почему вы это делаете?

Возвращаясь к вашей проблеме: можете ли вы предоставить простой минималистичный проект? Я думаю, что проблема не в коде, который вы предоставили.

...