Je crois que Google suggère aux développeurs d'utiliser AsyncTask. Cependant, j'aimerais savoir en quoi cela diffère de l'utilisation de 'new Thread' et de l'appel à 'RunOnUiThread' en termes de performances et d'efficacité mémoire.
Exemple d'utilisation de RunOnUithread :
// some code #1
Thread t = new Thread("Thread1") {
@Override
public void run() {
// some code #2
runOnUiThread(new Runnable() {
public void run() {
// some code #3 (that needs to be ran in UI thread)
}
});
}
};
t.start();
vs.
AsyncTask :
onPreExecute() {
// some code #1
}
doInBackground() {
// some code #2
}
onPostExecute() {
// some code #3
}
Quels sont les avantages / inconvénients ?
Edit :
Je ne cherche pas des réponses telles que "plus facile de voir le code", "pratique pour les développeurs", etc. Je cherche plutôt les différences techniques qui se cachent derrière la scène.
Par exemple, la réponse de Paul Nikonowicz ci-dessous aurait été la réponse que je voulais voir. (Mais AsyncTask se comporte de la même manière)