Domanda

Ho iniziato a utilizzare intenti personalizzati nella mia richiesta e mi sono imbattuto in un po 'un problema.

Quando mando un intento personalizzato registro un ricevitore broadcast e prendo l'intento non è un problema.

Tuttavia i problemi sembrano apparire quando invio di nuovo l'intento, il Broadcast Reciever sembra registrare due eventi del intenti e così via, quindi se l'intento è inviato una terza volta ricevo 3 volte.

Questo sta causando gravi problemi nella mia richiesta e si chiedeva è normale e c'è qualche modo ho a che fare con esso?

Qui è il mio codice:


Per inviare l'Intent:

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

Per ricevere l'Intent:

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

Esiste un modo per assicurarsi che l'intento è sparato solo una volta ??

È stato utile?

Soluzione

Non sono sicuro, perché avete questo problema, ma sei sicuro che hai bisogno di una Broadcast (ricevitore) per gestire intenti? Si può spiegare, perché lo fai?

Torna al tuo problema: si può fornire un semplice progetto minimalista? Credo che il problema non è nel codice che hai fornito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top