Llamada de servicio web con hilos
Estoy solicitando información de un servicio web en mi aplicación de Android. El servicio web devuelve una lista de elementos, cada elemento tiene una imagen base64 y alguna información
Primer método: simplemente acceda al servicio web y obtenga el resultado. Esto significa congelar la IU hasta que se descarguen los datos. No es una buena solución
Segundo método: coloque la descarga de datos en un hilo y muestre una barra de progreso con un mensaje.
private void StartGettingData()
{
viewInfo = new Runnable(){
public void run() {
getData(); //from the web service
}
};
Thread thread = new Thread(null, viewInfo, "MagentoBackground");
thread.start();
progressDialog = ProgressDialog.show(TracksListActivity.this,
"Please wait...", "Retrieving data from WEB...", true);
}
private void getData(){
{
get data from web service into a list and then
runOnUiThread(returnRes);
}
private Runnable returnRes = new Runnable() {
public void run() {
populate the listview adapter with info from the web service result list and
progressDialog.dismiss();
generalTrackInfoAdapter.notifyDataSetChanged();
}
};
Esto muestra una buena imagen de carga y el mensaje. El usuario tendrá que esperar hasta que se complete toda la descarga. No sé cómo cancelar el hilo getdata ().
Tercer método: me gustaría tener algo como, el usuario presiona un botón para obtener datos, un hilo descarga elemento por elemento del servicio web e inmediatamente lo muestra en la lista. El uso siempre puede cancelar la solicitud con solo presionar un botón.
Pero como hacer esto ? O hay otra manera ?