0

我有个问题。我想在 x 秒后停止 httpconnection,我该怎么做?我认为类似 timertask 的东西会在 x 秒后执行 httpconnection.close() 或类似的东西。这是我使用连接的代码。

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."));
        }

    }
4

0 回答 0