Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Loader no se inicia después de llamar a initLoader ()?

Tengo un fragmento, y quiero iniciar un cargador cuando se hace clic en un botón:

public class MyFragment extends Fragment { public void onActivityCreated() { super.onActivityCreated(); Button btn = ...; btn.setOnClickListener(new OnClickListener() { public void onClick(View view) { getLoaderManager().initLoader(500, null, mMyCallback); } }); } private LoaderManager.LoaderCallbacks<String> mMyCallback = new LoaderManager.LoaderCallbacks<String>() { @Override public Loader<String> onCreateLoader(int arg0, Bundle arg1) { Log.e(TAG, "LoaderCallback.onCreateLoader()."); return new MyLoader(getActivity()); } } } public class MyLoader extends AsyncTaskLoader<String> { public MyLoader(Context context) { super(context); } @Override public String loadInBackground() { Log.e(TAG, "Hi, running."); return "terrific."; } } 

Después de hacer clic en el botón, puedo ver el método onCreateLoader de mi devolución de llamada llamado, pero el cargador creado nunca empieza realmente. ¿Necesitamos llamar a forceLoad () en el cargador para que empiece realmente? Ninguno de los puestos de muestra hacer esto,

  • Android: 'dp' a 'px' conversión?
  • Mostrando progreso indeterminado en Sherlock Action Bar
  • (Dis-) Ventajas de tener varios módulos en un proyecto de Android Studio?
  • ¿Llamando a finish () de una actividad liberará mi espacio de memoria?
  • Cómo simular: css activa pseudo clase en android en elementos no-link?
  • Javax.net.ssl.SSLException: Error de lectura: ssl = 0x9524b800: Error de E / S durante la llamada al sistema, Conexión restablecida por pares
  • Gracias

  • Android OutOfMemoryError :?
  • Android WebKit enfocado textarea no dibujar imagen de fondo
  • Impedir el clic de Android ImageVIew?
  • La definición plural se ignora para la cantidad cero
  • Tamaño de texto y diferentes tamaños de pantalla de Android
  • Android agrega espaciado debajo del último elemento en recyclerview con gridlayoutmanager
  • 5 Solutions collect form web for “Loader no se inicia después de llamar a initLoader ()?”

    Es necesario implementar onStartLoading() y llamar a forceLoad() en algún lugar del método.

    Consulte esta publicación para obtener más información: Implementación de cargadores (parte 3)

    En mi experiencia nunca funcionó a menos que use forceLoad() .

    Puedes encontrar la respuesta a esta pregunta anterior útil: Cargadores en Android Honeycomb

    Tres puntos importantes con respecto a los cargadores son:

    1. Siempre Utilice el método forceLoad() al inicializar los cargadores. Por ejemplo:

       getLoaderManager().initLoader(500, null, mMyCallback).forceLoad(); 
    2. Siempre implemente onStartLoading() . Esta función será automáticamente llamada por LoaderManager cuando se LoaderManager el fragmento / actividad asociada.

    3. Asegúrese de que el ID del cargador es único, de lo contrario no se llamará al nuevo cargador.

    Si todavía hay un problema, puede comprobar el estado del cargador llamando al método isStarted() .

    onCreateLoader mantener una referencia a la instancia del cargador que cree en el método onCreateLoader . A continuación, para actualizarlo, llame a yourLoader.onContentChanged();

    Si tiene más de un cargador en la misma actividad, asegúrese de que su id difiere. Perdí pocas horas para entenderlo 🙂

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.