2011-09-30 14 views
7

Según algunos documentos, puedo usar un cargador en una actividad o un fragmento, pero el paquete de compatibilidad muestra que solo FragmentActivity tiene el método getLoaderManager().¿Debo usar Fragmentos para obtener un LoaderManager?

Como el cursor administrado anterior ha quedado obsoleto, tenemos que usar el cargador del cursor. Entonces, ¿por qué esta función de gestión de datos debe estar vinculada a una selección de widgets UI? No tiene sentido para mí.

gracias P.

Respuesta

6

Desde el cursor logrado edad ya no se utiliza tenemos que utilizar el cursor del cargador.

No, los cursores administrados aún funcionan. Por lo general, "obsoleto" en Android significa que "apoyaremos este mecanismo mientras podamos, pero creemos que hay mejores opciones".

¿Por qué esta función de gestión de datos debe vincularse a una selección de widgets UI?

No lo es. No tiene que usar fragmentos para heredar de FragmentActivity. También puede crear su propio LoaderManagerCapableActivity, donde clona los miembros y métodos de datos relevantes del FragmentActivity (el código fuente está en su disco duro). Sin embargo, LoaderManagertiene asociado a una actividad, porque está vinculado al ciclo de vida de la actividad, al igual que los cursores administrados. Por ejemplo, las instancias LoaderManager se pasan entre actividades a través del onRetainNonConfigurationInstance().

1

Sí, para obtener loaderManager debe estar asociado a una actividad, sin embargo, es posible usar cargadores sin la necesidad de loaderManger.

1) Implemente AsynTaskLoader.
2) Crea una instancia del cargador que hayas implementado en tu clase.
3) Registre un oyente para su cargador de modo que reciba la devolución de llamada una vez que se complete la carga.
4) Llame al método startLoading del cargador.
5) Después de completar la carga, se llamará al método de devolución de llamada donde puede usar los datos cargados para cualquier propósito.

Cuestiones relacionadas