Due to its focused nature, applications of Loader
are relatively easy to identify. The obvious applications include reading any kind of data from files or databases local to the device, as we've done in the examples in this chapter.
Of course there is no reason that the definition of "loading" should not encompass computing a value or set of values—in the download section of the Packt Publishing website you can find an example that uses Loader
to calculate a set of prime numbers.
One strong advantage of Loaders over direct use of AsyncTask
is that their lifecycle is very flexible with respect to the Activity
and Fragment
lifecycles. Without any extra effort we can handle configuration changes such as an orientation change. We can even start loading in one Activity
, navigate through the app, and collect the result in a completely separate Activity
, if that makes sense for our app.
This decoupling from the Activity
lifecycle makes Loader
in some ways a better candidate than AsyncTask
to perform network transfers such as HTTP downloads; however, they require more code, and still aren't a perfect fit. We'll discuss more appropriate alternatives in Chapter 5, Queuing Work with IntentService and Chapter 6, Long-running Tasks with Service.
3.136.236.17