Detener httpConnection blackberry después de un tiempo

tengo un problema. Quiero detener una conexión http después de x segundos, ¿cómo puedo hacer eso? Pensé en algo así como una tarea de tiempo que ejecuta un httpconnection.close() después de x segundos o algo así. Aquí está mi código donde uso mi conexión.

public void run() {

        boolean hasCoverage = (RadioInfo.getState() == RadioInfo.STATE_ON)
                && (RadioInfo.getSignalLevel() != RadioInfo.LEVEL_NO_COVERAGE);

        if (hasCoverage) {

            UiApplication.getUiApplication().invokeLater(new Runnable() {
                public void run() {
                    popup = new MyPopup("Cargando Incidentes...");
                    UiApplication.getUiApplication().pushModalScreen(popup);
                }
            });

            try {
                HttpConnection conn = null;

                String URL = "anypage.php";

                conn = (HttpConnection) Connector.open(URL);

                InputStream contentIn = conn.openInputStream();
                byte[] data = new byte[400];
                int length = 0;

                StringBuffer raw = new StringBuffer();
                while (-1 != (length = contentIn.read(data))) {
                    raw.append(new String(data, 0, length));
                    str = raw.toString();

                }

            } catch (Exception e) {
                e.printStackTrace();
                mainScreen.add(new RichTextField(
                        "Error ThreadIncidentesConnection: " + e.toString()));
            }

            UiApplication.getUiApplication().invokeLater(new Runnable() {

                public void run() {

                    try {

                        String datos[] = mainScreen.split(str, "ENDOFPAGE");
                        // mainScreen.add(new RichTextField(""+datos[0]));
                        datos[0] = datos[0].substring(2, datos[0].length());
                        mainScreen.vecRegistro = mainScreen
                                .split(datos[0], "$");
                        mainScreen.insertoEnBd();
                        mainScreen.insertoEnTablaDatosBD(_act);
                        UiApplication.getUiApplication().popScreen(popup);

                    } catch (Exception e) {
                        e.printStackTrace();
                        mainScreen.add(new RichTextField(
                                "Error ThreadIncidentes.run: " + e.toString()));
                    }
                }

            });
        } else {
            mainScreen.add(new RichTextField("No hay conexión disponible."));
        }

    }

preguntado el 22 de mayo de 12 a las 13:05

Su idea parece estar bien, y antes de cerrar la conexión, asegúrese de InputStream la instancia también se cierra. El trabajo más importante es agregar una condición adicional en el ciclo while (el ciclo que lee datos de InputStream). La condición debe interrumpir el ciclo si se cancela la conexión. -

Consulte estos enlaces, Timeout for Blackberry HttpConnection, stackoverflow.com/questions/2387158/…, Connection Timeout in Blackberry, stackoverflow.com/questions/10650989/… -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.