Detener httpConnection blackberry después de un tiempo
Frecuentes
Visto 333 veces
0
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."));
}
}
0 Respuestas
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java blackberry httpconnection or haz tu propia pregunta.
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 deInputStream
). La condición debe interrumpir el ciclo si se cancela la conexión. - RupakConsulte estos enlaces,
Timeout for Blackberry HttpConnection
, stackoverflow.com/questions/2387158/…,Connection Timeout in Blackberry
, stackoverflow.com/questions/10650989/… - Rupak