I noticed strange situation using Android Loaders and Fragments. When I invoke LoaderManager.initLoader() after orientation change onLoadFinished is not called (although doc
I solved the problem of onLoadFinished being called twice like this. In your Fragment.onActivityCreated() init your Loader like this
if (getLoaderManager().getLoader(LOADER_ID) == null) {
getLoaderManager().initLoader(LOADER_ID, bundle, loaderCallbacks);
} else {
getLoaderManager().restartLoader(LOADER_ID, bundle, loaderCallbacks);
}
here loaderCallbacks implements your usual Loader callbacks
private LoaderManager.LoaderCallbacks loaderCallbacks
= new LoaderManager.LoaderCallbacks() {
@Override
public Loader onCreateLoader(int id, Bundle args) {
...
...
}
@Override
public void onLoadFinished(Loader loader, T data) {
...
...
}
@Override
public void onLoaderReset(Loader loader) {
...
...
}
};