Loader und LoaderManager

  • Antworten:3
  • Bentwortet
lampenlampen
  • Forum-Beiträge: 15

28.11.2016, 22:49:00 via Website

Hey,

ich hab mal eine Frage zu Loaderund LoaderManager.
Hab mich jetzt schon ein bischen in Die Android Programmierung eingelesen und auch schon meine ersten Apps entwickelt und bin jetzt im Web überLoaderund LoaderManagergestolpert.
Bisher greife ich von meinem UI-Thread auf Ressourcen, Datenbank zu, aber das soll man ja anscheinend nicht. Die Frage ist nun, wenn ich in einer Activity eine Eingabemaske mit einer AutCompleteTextView habe, die von einer Datenbank gespeist wird, sollte man dafür dann auch schon die Loader Klassen hernehmen?

Und wenn ich XML-Ressourcen zugreife, um z.B. ein Spinner mit Einträgen zu versorgen, soll dann da auch ein Loader verwendet werden?

Danke

Grüße

Antworten
swa00
  • Forum-Beiträge: 3.704

29.11.2016, 10:24:26 via Website

Hallo Lampen,

ich verwende den LoaderManager nicht und ich weis auch nicht , was du mit diesem genau tust.

I.d.R benutzt man Threads, um Hintergrund-Processe auszuführen.
(z.b. AsyncTask, Thread, Http-Libraries mit callback etc.)

Liebe Grüße - Stefan
[ App - Entwicklung ]

lampenlampenPascal P.

Antworten
lampenlampen
  • Forum-Beiträge: 15

29.11.2016, 12:08:25 via Website

Ein Loader ist ja da, damit man nicht auf dem UI-Thread auf Daten zugreifen muss, da dann der UI-Thread blockiert ist, bis die Daten verfügbar sind (z.B. wenn man Daten aus einer Datenbank abruft), sondern die Daten asynchron laden kann.
Der Sinn davon ist mir auch klar. Google rät dazu, Datenbankzugriffe (generell Datenzugriffe) mittels einem Loader zu bewerkstelligen.
Meine Frage nun, wie weit soll ich gehen? Also soll ich bei Zugriff auf XML-Ressourcen auch schon mit Loader arbeiten?

Antworten
swa00
  • Forum-Beiträge: 3.704

29.11.2016, 12:25:38 via Website

Wozu der Loader da ist , ist schon hinreichend bekannt.

Er ist allerdings eine high-Level Schnittstelle mit beschränkter EInsatzfähgkeit und eher "rudimentär"
Genau so wie der AsynTask (Midlevel) , der auf einem Thread aufbaut.

Grundsätzlich kann man auch IMMER das UI frei laufen lassen. Sollte man einen Zugriff aufs UI benötigen,
dann kann man sie hierzu dem OnRunUIThread bedienen.

Und um deine Frage zu beantworten : Ja, so viel wie möglich IMMER in einen Thread.

Und nein : Wenn du sicher und vernünftig coden möchtest - den Thread IMMER dem Loader vorziehen

Der Loader ist nur ein Wrapper für diejenigen , die sich nicht zu helfen wissen

— geändert am 29.11.2016, 12:27:22

Liebe Grüße - Stefan
[ App - Entwicklung ]

lampenlampen

Antworten