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 ??
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 –
Ok, dans ce cas, il est logique. Content que tu aies résolu ton problème. – WarrenFaith