Autore Topic: eseguire 2 Asynctask diversi  (Letto 1568 volte)

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
eseguire 2 Asynctask diversi
« il: 21 Settembre 2012, 12:16:20 CEST »
0
Come posso fare per eseguire 2 asynctask diversi insieme?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:eseguire 2 Asynctask diversi
« Risposta #1 il: 21 Settembre 2012, 12:33:58 CEST »
0
Puoi creare quanti AsyncTask vuoi (entro certi limiti ovviamente) e farli partire uno dietro l'altro, senza nessun problema.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:eseguire 2 Asynctask diversi
« Risposta #2 il: 21 Settembre 2012, 14:34:44 CEST »
0
io ho bisogno che vengano eseguiti in parallelo

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:eseguire 2 Asynctask diversi
« Risposta #3 il: 21 Settembre 2012, 14:55:59 CEST »
0
io ho bisogno che vengano eseguiti in parallelo

Si, stavo dicendo quello: ti crei i due AsyncTask e poi fai lo start di entrambi.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:eseguire 2 Asynctask diversi
« Risposta #4 il: 21 Settembre 2012, 16:02:33 CEST »
0
però quando richiamo il metodo execute sul secondo asynctask, quest'ultimo non parte cioè non viene eseguito il codice che c'è in doInBackground...

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:eseguire 2 Asynctask diversi
« Risposta #5 il: 21 Settembre 2012, 16:43:42 CEST »
0
però quando richiamo il metodo execute sul secondo asynctask, quest'ultimo non parte cioè non viene eseguito il codice che c'è in doInBackground...

Ci sarà un errore da qualche parte, hai provato a fare un po' debug?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:eseguire 2 Asynctask diversi
« Risposta #6 il: 21 Settembre 2012, 17:20:18 CEST »
0
ho provato prima a fare:

asynctask1.execute();
asynctask2.execute();

in questo modo però parte solo il primo.
poi ho provato:

//asynctask1.execute();
asynctask2.execute();

ed in questo modo il secondo funziona... quindi sicuramente non saprei quale possa essere il problema
ps. ho gia anche provato in debug

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:eseguire 2 Asynctask diversi
« Risposta #7 il: 21 Settembre 2012, 18:10:00 CEST »
0
dai un occhiata qui, dovrebbe essere ciò di cui hai bisogno  ;-)

Stackoverflow
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:eseguire 2 Asynctask diversi
« Risposta #8 il: 21 Settembre 2012, 18:29:05 CEST »
0
dai un occhiata qui, dovrebbe essere ciò di cui hai bisogno  ;-)

Stackoverflow

 :-o  Non sapevo che da HoneyComb avessero riportato il thread pool a 1 asynctask per volta   :-o

Grazie per la segnalazione, non ero aggiornato.

EDIT : leggendo l'esempio linkato nei commenti, pare che basti rimpiazzare questo:

Codice (Java): [Seleziona]
task.execute();
con questo:

Codice (Java): [Seleziona]
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
topix93, tienici aggiornati se funziona  :-)
« Ultima modifica: 21 Settembre 2012, 18:32:01 CEST da bradipao »
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:eseguire 2 Asynctask diversi
« Risposta #9 il: 25 Settembre 2012, 16:02:02 CEST »
0
si funziona. grazie a tutti

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:eseguire 2 Asynctask diversi
« Risposta #10 il: 25 Settembre 2012, 17:15:56 CEST »
0
:-o  Non sapevo che da HoneyComb avessero riportato il thread pool a 1 asynctask per volta   :-o

Grazie per la segnalazione, non ero aggiornato.

EDIT : leggendo l'esempio linkato nei commenti, pare che basti rimpiazzare questo:

Codice (Java): [Seleziona]
task.execute();
con questo:

Codice (Java): [Seleziona]
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
topix93, tienici aggiornati se funziona  :-)

Nemmeno io, l'ho scoperto per caso! XD

X topix93, segnala il topic come risolto, così sarà d'aiuto a gli altri! ;)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch