Solicitar datos mediante un objeto BlockingSenderDestination

  1. Importe las clases y las interfaces necesarias.
    import net.rim.device.api.io.messaging.*;
    import net.rim.device.api.io.URI;
  2. Cree un subproceso desde el cual llamar a BlockingSenderDestination.sendReceive().
    Thread t = new Thread( new Runnable()
    {
        public void run()
        {
  3. Cree un objeto de Message que contenga la respuesta de la dirección URL.
            Message response = null;
  4. Cree un objeto de URI para pasarlo a la clase de DestinationFactory.
            URI uri = new URI("http://www.blackberry.com");
  5. Cree un objeto de BlockingSenderDestination.
            BlockingSenderDestination bsd = null;
  6. Recupere el objeto de BlockingSenderDestination para su contexto, si existe.
            try
            {
                bsd = (BlockingSenderDestination) 
                          DestinationFactory.getSenderDestination
                                                 ("MyContext", uri);
  7. Si no existe un BlockingSenderDestination, cree uno.
                if(bsd == null)
                {
                    bsd = DestinationFactory.createBlockingSenderDestination
                                                 (new Context("MyContext"), uri);
                }
  8. Envíe un mensaje y espere la respuesta.
                response = bsd.sendReceive();
  9. Si el servicio Web envía una respuesta, procésela.
                if(response != null)
                {
                    processResponse(response);
                }
            }
  10. Revise cualquier error que se produzca si el mensaje no se pudo enviar por alguna razón.
            catch (Exception e)
            {
                // Process the error
            }
  11. Publique el BlockingSenderDestination.
            finally
            {
                if(bsd != null)
                {
                    bsd.release();
                }
            }
        }
    });
  12. Inicie el subproceso.
    t.start();
Después de terminar: Si su processResponse() actualiza la IU, debe hacer lo mismo en el subproceso de evento principal, no en el subproceso que usted creó en esta tarea. Para obtener más información, lea el artículo de la base de conocimientos en http://supportforums.blackberry.com/t5/Java-Development/Manage-UI-interactions/ta-p/502378.

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


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