This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I have attended a lecture by Tim Bray a while ago in Google Developer Day and he talked a little about multithreading development in Android. However the time was so short he barely could talk about it. So, I was under the impression that multithreading developing in Android has something similar to the SwingWorker class from Java 6. Can you guys elaborate a little about this?
Also, note that AsyncTask was written to provide a convenient, easy-to-use way to achieve background processing in Android apps, without worrying too much about the low-level details(threads, message loops etc). It provides callback methods that help to schedule tasks and also to easily update the UI whenever required.
However, it is important to note that when using AsyncTask, a developer is submitting to its limitations, which resulted because of the design decisions that the author of the class took. For e.g.
1. You should instantiate AsyncTask only on UI thread
2. there is a limit to the number of jobs that can be scheduled using AsyncTasks.
Handler is more transparent of the two and probably gives you more freedom; so if you want more control on things you would choose Handler otherwise AsyncTask will work just fine.