Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top