
No puedo ejecutar varios AsyncTask en la misma Actividad.
Publicado por Joaquín (24 intervenciones) el 04/02/2017 15:42:42
Tengo una base de datos SQLite de la que obtengo una variable pid, con la que consulto una base datos externa MySQL mediante AsyncTask. Queda en resumen así:
El problema es que el último AsyncTask (ActualizarFavoritosComer()), se queda colgado en onPreExecute() y no pasa los datos a la BD MySQL. No se me ocurre porqué y agradecería las ideas de alguien.
Gracias de antemano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
verReg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Vemos los registros de nuestra tabla
pids = new String[FDB.recuperarfavoritos().size()];
aparts = new String[FDB.recuperarfavoritos().size()];
pidListArte = new ArrayList<String>();
pidListNaturaleza = new ArrayList<String>();
for (int i = 0; i < FDB.recuperarfavoritos().size(); i++) {
pids[i] = FDB.recuperarfavoritos().get(i).getpid();
aparts[i] = FDB.recuperarfavoritos().get(i).getapartado();
//Apartado Arte
if(apartadomatriz[0].equals(aparts[i])){
pidListArte.add(pids[i]);
String url_fav_arte="http://xxx/phpconsult/favoritos/arte.php";
url_arte = new ArrayList<String>(Arrays.asList(url_fav_arte.split(",")));
}
//Apartado Naturaleza
if(apartadomatriz[1].equals(aparts[i])){
pidListNaturaleza.add(pids[i]);
String url_fav_naturaleza="http://xxx/phpconsult/favoritos/naturaleza.php";
url_naturaleza = new ArrayList<String>(Arrays.asList(url_fav_naturaleza.split(",")));
}
//Apartado Ofertas para comer
if(apartadomatriz[2].equals(aparts[i])){
pidListComer.add(pids[i]);
String url_fav="http://xxx/phpconsult/favoritos/comer.php";
url_comer = new ArrayList<String>(Arrays.asList(url_fav.split(",")));
}
}
if (pidListArte.isEmpty()){
} else {
new ActualizarFavoritos().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,pidListArte,url_arte);
}
if (pidListNaturaleza.isEmpty()) {
} else {
new ActualizarFavoritosNaturaleza().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,pidListNaturaleza,url_naturaleza);
}
if (pidListComer.isEmpty()) {
} else {
new ActualizarFavoritosComer().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,pidListComer,url_comer);
}
}
});
Gracias de antemano.
Valora esta pregunta


0