Я считаю, что Google предлагает разработчикам использовать AsyncTask. Однако я хотел бы знать, чем это отличается от использования «нового потока» с последующим вызовом «RunOnUiThread» с точки зрения производительности и эффективности использования памяти.
Пример использования 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
}
Каковы преимущества / недостатки?
Изменить:
Я не ищу ответов типа «легче увидеть код», «удобно для разработчиков» и т. Д. Я действительно ищу технические различия за сценой.
Например, ответ Пола Никоновича ниже был бы тем ответом, который я хотел бы увидеть. (Но AsyncTask ведет себя так же)