Implementar la interfaz MessageListener

Puede utilizar la interfaz de MessageListener para recibir los mensajes enviados por un objeto de NonBlockingSenderDestination o los mensajes push enviados desde un iniciador push.
  1. Importe las clases y las interfaces necesarias.
    import net.rim.device.api.io.messaging.*;
    import java.io.IOException;
    import java.io.InputStream;
  2. Defina una clase que implemente la interfaz de MessageListener.
    public class MyMessageListener implements MessageListener {
  3. Implemente onMessage().
        public void onMessage(Destination dest, Message incomingMessage)
        {
  4. Inicialice una variable de String que contenga los datos de la respuesta.
            String payload = null;
  5. Si la respuesta es un objeto de ByteMessage, recupere la respuesta como String y asígnelo a payload.
            if (incomingMessage instanceof ByteMessage)
            {
                ByteMessage reply = (ByteMessage) incomingMessage;
                payload = (String) reply.getStringPayload();
            }
  6. Si la respuesta es un StreamMessage, recupera la respuesta como un objeto de InputStream.
            else if(incomingMessage instanceof StreamMessage)
            {
                StreamMessage reply = (StreamMessage) incomingMessage;
                InputStream is = reply.getStreamPayload();
    1. Si la respuesta es pequeña, convierta los contenidos de la transmisión en una matriz de byte.
                  byte[] data = null;
                  try 
                  {
                      data = net.rim.device.api.io.IOUtilities.streamToBytes(is);
                  } catch (IOException e) 
                  {
                       // process the error
                  }
    2. Si la conversión fue correcta, convierta la matriz de byte a un String y asígnelo a payload.
                  if(data != null)
                  {
                      payload = new String(data);
                  }
              }
  7. Si payload contiene datos, muéstrelo.
            if(payload!=null)
            {
                synchronized(Application.getEventLock())
                {
                    UiApplication.getUiApplication().pushScreen
                                                  (new HTTPOutputScreen(payload));
                }
            }
Después de terminar: Implemente onMessageCancelled() y onMessageFailed() para procesar otras notificaciones.

Puede ver una muestra de código completo, en "Muestra de código: solicitar datos mediante un objeto NonBlockingSenderDestination"


¿Le ha resultado útil esta información? Envíenos sus comentarios.