Android - No puedo ejecutar varios AsyncTask en la misma Actividad.

 
Vista:
sin imagen de perfil

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í:
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);
            }
    }
});
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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

No puedo ejecutar varios AsyncTask en la misma Actividad.

Publicado por Joaquín (24 intervenciones) el 04/02/2017 23:46:21
Solucionado, el problema estaba en los AsyncTask en onPreExecute() en la variable ProgressDialog que estaba utilizando la misma:
private ProgressDialogp Dialog;
en vez de una para cada AsyncTask:
1
2
3
4
ProgressDialog arteDialog;
ProgressDialog natuDialog;
ProgressDialog restDialog;
...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar