I see several people have already replied, and correctly explained that
having just one AsyncTask is a bad idea. But none seem to have commented:
the very question, posed as a choice between one AsyncTask vs. one for each
screen, seems to imply a fundamental misunderstanding of the purpose of
The purpose of AyncTask is not to handle something for every screen. It is
to handle long tasks that do not belong in the UI thread in the first
place, the prototypical example being the upload or download of a single
file via HTTP, with occasional, light communication back to the UI thread,
e.g. progress updates on that up/download.
AsyncTask is not a general purpose multi-tasking tool. As has already been
pointed out, you can call the executor only once, and then not again. So it
is not good for a background task that sits and waits for messages,
processing each in turn. Looper/Handler is more suitable for that.
AsyncTask is more useful for "one shot" tasks, and specifically for those
that take too long to allow in the UI thread.
Even for these tasks, complications emerge when you use AsyncTask and the
phone is rotated.
for several different ways of dealing with this complication, choose the
one best for your own application.