3

J'ai commencé à utiliser des intentions personnalisées dans mon application et j'ai rencontré un peu de problème. Lorsque j'envoie une intention personnalisée, j'enregistre un récepteur de diffusion et j'attrape l'intention sans problème. Cependant, des problèmes semblent apparaître lorsque j'envoie l'intention à nouveau, le récepteur de réception semble enregistrer deux événements de l'intention et ainsi de suite, donc si l'intention est envoyée une troisième fois, je le reçois 3 fois.Android - Intentions d'une façon ou d'une autre?

Cela pose des problèmes majeurs dans mon application et je me demandais est-ce normal et il ya un moyen que j'ai d'y faire face?

Voici mon code:


Pour envoyer l'intention:

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

Pour recevoir l'intention:

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

est-il de toute façon de vous assurer que la L'intention est seulement virée une fois ??

Répondre

2

Je ne suis pas sûr, pourquoi avez-vous ce problème, mais êtes-vous sûr que vous avez besoin d'une diffusion (récepteur) pour gérer les intentions? Pouvez-vous expliquer, pourquoi faites-vous cela?

Retour à votre problème: pouvez-vous fournir un projet simple et minimaliste? Je pense que la question ne figure pas dans le code que vous avez fourni.

+0

Bonjour, J'ai une interface utilisateur d'écran d'appel et quand l'utilisateur dit accepter un appel, je tire une intention qui est reçue dans le récepteur de diffusion dans mon code moteur SIP. Donc le moteur SIP sait alors envoyer un 200 OK. Est-ce que mon approche me semble acceptable ou suggérez-vous une meilleure méthode? J'ai trouvé le problème dans mon code et c'est un moment de faceplam, j'utilisais la méthode au mauvais endroit et en enregistrant le récepteur encore et encore –

+1

Ok, dans ce cas, il est logique. Content que tu aies résolu ton problème. – WarrenFaith

Questions connexes