Combining Loaders
In the preceding sections we developed an AsyncTaskLoader
that can load a single image thumbnail as a Bitmap
, and a CursorLoader
that loads a list of all available images on the device. Let's bring them together to create an app that tiles thumbnails of all the images on the device in a scrollable grid, performing all loading in the background.
Thanks to our CursorLoader
, we already have access to the IDs of the images we need to load—we're displaying them as text—so we just need to pass those IDs to our ThumbnailLoader
for it to asynchronously load the image for us.
Recall that ThumbnailLoader
was set up to load one Bitmap
and cache it forever (that is, until explicitly removed from LoaderManager
). We want to change that so that a single ThumbnailLoader
can first be constructed without a mediaId
, and later be told to load an image with a particular mediaId
.
public ThumbnailLoader(Context context) { super(context); }
We'll enable ThumbnailLoader
to load a new image instead...