2016-03-31 2 views
1

Kann ich nicht verstehen, wenn ich Loader verwenden muss und wenn AsyncTaskLoader? Ich habe Dokumente von diesen Klassen gelesen, aber ich habe es schlecht verstanden. Wie ich verstanden habe Loader ermöglicht, eine Hintergrundarbeit zu tun, so muss es in Nicht-GUI-Thread gestartet werden, ist es nicht? Warum macht AsyncTaskLoader alles gleich? Ich bin schon verwirrt.
Bitte erklären Sie mir weitere Einzelheiten.Was ist die Defferenz zwischen AsyncTaskLoader und Loader?

+0

Loader Sie können Empfänger innerhalb registrieren und empfangen, sie leben, solange die Aktivität noch läuft, während die asynctask beendet wird, wenn ihre Arbeit erledigt ist. – k0sh

+0

Ich fragte nach 'AsyncTaskLoader' und' Loader'. Ich kann einfach nicht verstehen, ob 'Loader' im Hintergrund funktioniert, warum brauchen wir den' AsyncTaskLoader'? –

Antwort

3

Alle der Loader Methoden sind auf dem Haupt-Thread genannt - Loader führt keine Arbeit auf einem Hintergrundthread. Auf diese Weise können Sie den von Ihnen gewünschten Lademechanismus verwenden - sei es ein separater Thread, Rückrufe zu einer anderen Komponente oder irgendetwas anderes.

AsyncTaskLoaderLoader erstreckt und fügt loadInBackground(), ein Verfahren speziell auf einem Hintergrund-Thread genannt. Es ist einfach eine Komfortklasse für den einfachen Fall.

In jedem Fall ist die echte Rolle des Lader ist zu Laden von Daten-Lebenszyklus bewusst zu machen, wie in this blog post erklärt - Loader s (und damit AsyncTaskLoaders) Konfigurationsänderungen wie Bildschirm Drehungen überleben. Der Blog enthält eine Reihe von Beispielen für AsyncTaskLoader mit einem AsyncTaskLoader mit einem Beobachter von Änderungen und einem Loader, der Daten aus einer anderen Datenquelle mithilfe von Rückrufen erhält.

+0

Danke für die Antwort! Dann erkannte ich es falsch in der Wurzel) –

Verwandte Themen