Foros del Web » Programando para Internet » Android »

Executar el método solo 1 vez dentro de un hilo.

Estas en el tema de Executar el método solo 1 vez dentro de un hilo. en el foro de Android en Foros del Web. Buenas noches, parece fàcil pero no lo es ! Quiero ejecutar el método solo 1 vez en hilo : Cuando hago : "muc2.addMessageListener(packetListener);" solo lo ...
  #1 (permalink)  
Antiguo 22/05/2013, 16:02
(Desactivado)
 
Fecha de Ingreso: agosto-2011
Mensajes: 327
Antigüedad: 13 años, 2 meses
Puntos: 3
Executar el método solo 1 vez dentro de un hilo.

Buenas noches, parece fàcil pero no lo es !

Quiero ejecutar el método solo 1 vez en hilo :

Cuando hago : "muc2.addMessageListener(packetListener);" solo lo quiero llamar 1 vez, porqué dentro de este tengo : "onMessageReceivedListener.onMessageReceived(messa ge);" que gracias a esto puedo recuperar todos los mensages anteriormente ...., pero cuando escribo

jo envio : hola
jo recibo : hola --> por que recibo lo que envio ?? !! fácil ese mètodo se encarga de recuperar los paquetes..
él recibe : hola

él envio : bien
él recibo : bien -> por que recibo lo que envio ?? !! fácil ese mètodo se encarga de recuperar los paquetes..
yo recibo : bien

Código Java:
Ver original
  1. new Thread(new Runnable() {
  2.             @Override
  3.             public void run() {
  4.                 // Chat action 1 -- create connection.
  5.                 Connection.DEBUG_ENABLED = true;
  6.                 config = new ConnectionConfiguration(CHAT_SERVER);
  7.                 connection = new XMPPConnection(config);
  8.  
  9.                 try {
  10.                     connection.connect();
  11.                     connection.login(chatLogin, password);
  12.  
  13.                     // Chat action 2 -- create chat manager.
  14.                     chatManager = connection.getChatManager();
  15.  
  16.                     // Chat action 3 -- create chat.
  17.                     chat = chatManager.createChat(friendLogin, messageListener);
  18.  
  19.                     // Set listener for outcoming messages.
  20.                     chatManager.addChatListener(chatManagerListener);
  21.                     muc2 = new MultiUserChat(connection, "[email protected]");
  22.                     // Discover whether [email protected] supports MUC or not
  23.                    
  24.                     // The room service will decide the amount of history to send
  25.                     muc2.join(chatLogin);
  26.                     muc2.invite(friendLogin, "Welcome!");
  27.                     Log.d("friendLogin ->",friendLogin);
  28.                     // Set listener for outcoming messages.
  29.                     //chatManager.addChatListener(chatManagerListener);
  30.                     muc2.addMessageListener(packetListener);
  31.                     addListenerToMuc(muc2);
  32.                     //[email protected]    ---  el meu
  33.                     Message message = new Message(friendLogin + "@muc.chat.quickblox.com");
  34.                     message.setBody("Join me for a group chat!");
  35.                     message.addExtension(new GroupChatInvitation("[email protected]"));
  36.                     connection.sendPacket(message);
  37.                    
  38.                    
  39.                 } catch (XMPPException e) {
  40.                     e.printStackTrace();
  41.                 }
  42.             }
  43.         }).start();
  44. }
  45.  
  46.  PacketListener packetListener = new PacketListener() {
  47.         @Override
  48.         public void processPacket(Packet packet) {
  49.           Message message = (Message)packet;
  50.           try {
  51.                 muc2.sendMessage(message);
  52.                 onMessageReceivedListener.onMessageReceived(message);
  53.         } catch (XMPPException e) {
  54.             // TODO Auto-generated catch block
  55.             e.printStackTrace();
  56.         }
  57.           //System.out.println("got message " + message.toXML());
  58.         }
  59.     };


Lo que quiero que el Listener (packetListener ) solo se ejecute 1 vez puedo hacerlo ?

he intentado de todo , booleanas , condiciones , whiles , dowhiles , arrays , listadearrays (para llenarlo independientemente y luego mirar si esta lleno ) , etc... no veo manera de ejecutar ese método 1 sola vez ...

--- > Remover lis listeners : http://stackoverflow.com/questions/16164065/how-to-remove-packet-listeners-of-xmppclient-using-smack


Espero explicarme correctamente.

Última edición por drakgoku1; 22/05/2013 a las 17:24

Etiquetas: todo, vez, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:28.