Custom AsyncTaskLoader, loadinBackground no se llama después de 5 intentos

Tengo un SherlockListFragment que implementa un AsyncTaskLoader personalizado. En el onStartLoading() , tengo:

 @Override protected void onStartLoading() { if (mData != null) { deliverResult(mData); } else{ forceLoad(); } } 

El contenedor SherlockListFragment inicia el cargador en onActivityCreated :

 @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mAdapter = new MyListAdapter(getActivity()); setListAdapter(mAdapter); getLoaderManager().initLoader(0, null, this); } 

Y:

 @Override public Loader<List<MyData>> onCreateLoader(int id, Bundle args) { return new MyListLoader(getActivity()); } 

El problema es que después de 5 activaciones / navegaciones a mi FragmentActivity, loadinBackground() no se llama. El onStartLoding se llama, así como el forceLoad , pero eso es todo. Ninguna excepción, nada en el LogCat.

¿Algunas ideas?

Está bien llamar a forceLoad () .

Vea qué documentación dice :
Por lo general, sólo debe llamar a esto cuando el cargador se inicia – es decir, isStarted () devuelve true.

Código completo:

 @Override protected void onStartLoading() { try { if (data != null) { deliverResult(data); } if (takeContentChanged() || data == null) { forceLoad(); } Log.d(TAG, "onStartLoading() "); } catch (Exception e) { Log.d(TAG, e.getMessage()); } } 

Importante:

La documentación dice : Las subclases de Loader<D> generalmente deben implementar al menos onStartLoading (), onStopLoading (), onForceLoad () y onReset () .

AsyncTaskLoader extiende Loader pero no implementa onStartLoading (), onStopLoading (), onReset () . Usted debe implementarlo por usted mismo!


PS Me confundió con él después de la experiencia de usar CursorLoader simple, también pensé que usar forceLoad () es mala práctica. Pero no es cierto.

  • AsyncTaskLoader personalizado con caché
  • AsyncTaskLoader no llama a onLoadFinished a menos que devuelva un nuevo objeto en loadInBackground
  • Datos fuera de sincronización entre un CursorLoader personalizado y un CursorAdapter respaldando un ListView
  • Diferencia real entre AsyncTask y Thread
  • Cómo manejar los errores en AsyncTaskLoader personalizado?
  • Cómo pasar params a Android AsnycTaskLoader
  • Volley o ASyncTaskLoader
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.