Pergunta

Comecei a usar intenções personalizadas no meu aplicativo e encontrei um pouco de um problema.

Quando envio uma intenção personalizada, registro um receptor de transmissão e pego a intenção sem problemas.

No entanto, os problemas parecem aparecer quando envio a intenção novamente, o receptor de transmissão parece registrar dois eventos da intenção e assim por diante, se a intenção for enviada pela terceira vez, recebo -a três vezes.

Isso está causando grandes problemas na minha aplicação e estava pensando que é normal e há alguma maneira de lidar com isso?

Aqui está o meu código:


Para enviar a intenção:

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

Para receber a intenção:

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);

Existe alguma maneira de garantir que a intenção seja demitida apenas uma vez?

Foi útil?

Solução

Não tenho certeza, por que você tem esse problema, mas tem certeza de que precisa de uma transmissão (receptor) para lidar com as intenções? Você pode explicar, por que você faz isso?

De volta ao seu problema: você pode fornecer um projeto minimalista simples? Eu acho que o problema não está no código que você forneceu.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top