9

CursorAdapter tiene 3 constructores. Deje ver la guía y referencia.¿Qué CursorAdapter tengo que usar?

1) CursorAdapter (contexto Contexto, Cursor c)

Este constructor está en desuso. Se desaconseja esta opción, ya que da como resultado que las consultas del cursor se realicen en el subproceso UI de la aplicación y, por lo tanto, puede causar una respuesta deficiente o incluso no aplicación Errores de respuesta. Como alternativa, use LoaderManager con un CursorLoader .

2) CursorAdapter (contexto Contexto, Cursor c, autoRequery boolean)

constructor que permite el control sobre auto-requery. Se recomienda no usar este, sino CursorAdapter (Context, Cursor, int).

3) CursorAdapter (contexto Contexto, Cursor c, int flags)

constructor recomendado.

flags Indicadores utilizados para determinar el comportamiento del adaptador; puede ser cualquier combinación de FLAG_AUTO_REQUERY y FLAG_REGISTER_CONTENT_OBSERVER.

FLAG_AUTO_REQUERY Esta constante está en desuso. Esta opción es desaconsejada, ya que da como resultado que las consultas del cursor se realicen en la secuencia de la interfaz de usuario de la aplicación y, por lo tanto, puede causar una respuesta deficiente o incluso Errores de aplicación no responde. Como alternativa, use LoaderManager con un CursorLoader.

FLAG_REGISTER_CONTENT_OBSERVER. Este indicador no es necesario cuando se utiliza un CursorAdapter con un CursorLoader.

CursorAdapter (contexto Contexto, Cursor c, int flags) es el constructor recomendado, pero los posibles banderas son 2, uno es obsoleto y el otro no es necesaria al utilizar un CursorAdapter con un CursorLoader. Si utilizo un CursorAdapter con un CursorLoader, ¿tengo que usar este constructor y pasar cero como indicador? ¿Y en este caso el constructor es el mismo que el # 1 en desuso?

Respuesta

6

Al usar el n. ° 1, establece el adaptador por defecto para que vuelva a realizar la autoliquidación. Esto difiere del # 3 porque puede especificar si desea realizar una nueva consulta automática (lo que no debería hacer, según la documentación). Por lo tanto, no, los números 1 y 3 no son lo mismo si pasa el constructor n.º 0.

1

CursorAdapter es una clase abstracta y, como tal, no se puede crear una instancia.

Además, tenga en cuenta que el tercer constructor solo es API 11+.

+3

Sí, mi aplicación tiene versión min API 7 pero yo uso el paquete de compatibilidad – crbin1

0

Debe migrar con LoaderManager y Loader.

porque probablemente todos estén en desuso.así que es mejor usar CursorLoader con LoaderManager y Loader

Puede encontrar el proyecto de muestra en el siguiente enlace que obtiene la lista de aplicaciones instaladas en cualquier teléfono.

https://github.com/alexjlockwood/AppListLoader.git

Buena suerte ..

Cuestiones relacionadas