Building responsive apps with AsyncTaskLoader
AsyncTaskLoader
is a Loader
implementation that uses
AsyncTasks
to perform its background work, though this is largely hidden from us when we implement our own subclasses.
We don't need to trouble ourselves about the AsyncTasks—they are completely hidden by AsyncTaskLoader
—but with what we learned earlier about AsyncTask
, it is interesting to note that tasks are executed using AsyncTask.THREAD_POOL_EXECUTOR
to ensure a high degree of concurrency when multiple Loaders are in use.
Loader
is generically typed so, when we implement it, we need to specify the type of object that it will load—in our case android.graphics.Bitmap
:
public class ThumbnailLoader extends AsyncTaskLoader<Bitmap> { // ... }
The Loader
abstract class requires a Context passed to its constructor, so we must pass a Context up the chain. We'll also need to know which thumbnail to load, so we'll also pass an identifier, mediaId
:
private Integer mediaId; public ThumbnailLoader...