I'm trying to figure out how to use Loaders
in Android 3.0 but can't seem to get it to work. The docs only describe using CursorLoader
but I'm using AsyncTaskLoader
.
From the docs it seems that you should only need to implement AsyncTaskLoader.loadInBackground()
but it never gets called after getLoaderManager().initLoader()
and then creating the loader in the callback.
I can see debug messages saying Created new loader LoaderInfo{4040a828 #0 : ArticleDataLoader{4036b350}}
so it seems like it is created successfully.
Is it possible that loaders are currently broken in the SDK or is there some method you need to call after creating the loader? (they haven't done that in the CursorLoader
example).
EDIT: Seems like calling forceLoad()
on the Loader returned from initLoader()
starts the loading at least but this means you can't handle rotations correctly :(
Dianne Hackborn replied on the bug tracker and referred us to the static library implementation. CursorLoader is doing forceLoad() which is why it is working.
See my attached class for a class which handles this for you in most simple cases at the bug tracker: http://code.google.com/p/android/issues/detail?id=14944