Benutzerdefinierter AsyncTaskLoader, loadinBackground wird nach 5 Versuchen nicht aufgerufen

9

Ich habe eine SherlockListFragment , die eine benutzerdefinierte AsyncTaskLoader implementiert. Im überschriebenen onStartLoading() habe ich:

%Vor%

Das enthaltende SherlockListFragment startet den Loader in onActivityCreated :

%Vor%

und:

%Vor%

Das Problem ist, dass nach 5 Aktivierungen / Navigationen zu meiner FragmentActivity loadinBackground() nicht aufgerufen wird. Der onStartLoding wird aufgerufen, ebenso wie der forceLoad , aber das war's. Keine Ausnahme, nichts im LogCat.

Irgendwelche Ideen?

    
Magnus Johansson 10.02.2013, 18:41
quelle

1 Antwort

0

Es ist in Ordnung, forceLoad () aufzurufen.

Siehe Dokumentation sagt :
Sie sollten das normalerweise nur aufrufen, wenn der Loader gestartet wird. Das heißt, isStarted () gibt true zurück.

Vollständiger Code:

%Vor%

Wichtig:

Dokumentation sagt : Unterklassen von Loader<D> müssen im Allgemeinen mindestens onStartLoading (), onStopLoading (), onForceLoad () und onReset () .

AsyncTaskLoader erweitert Loader, implementiert aber nicht onStartLoading (), onStopLoading (), onReset () . Sie müssen es selbst implementieren!

P.S. Ich war damit verwirrt, nachdem ich Erfahrung mit der Verwendung von CursorLoader hatte. Ich dachte auch, dass die Verwendung von forceLoad () eine schlechte Übung ist. Aber es ist nicht wahr.

    
Iuliia Ashomok 17.08.2016 09:40
quelle

Tags und Links