2010-04-07 32 views

Respuesta

72

managedQuery() utilizará consulta de ContentResolver(). La diferencia es que con managedQuery() la actividad mantendrá una referencia a su Cursor y cerrarla cuando sea necesario (en onDestroy() por ejemplo.) Si haces query() usted mismo, se tiene que manejar el cursor como un recurso sensible . Si se le olvida, por ejemplo, a close() en onDestroy(), se le escape que subyace recursos (Logcat le advertirá al respecto.)

para consultar un proveedor de contenido, se puede utilizar el método ContentResolver.query() o el método Activity.managedQuery() . Ambos métodos toman el mismo conjunto de argumentos, y ambos devuelven un objeto Cursor. Sin embargo, managedQuery() hace que la actividad administre el ciclo de vida del Cursor. Un Cursor gestionado maneja todas las sutilezas, como descargarse cuando la actividad se detiene, y volver a consultar cuando la actividad se reinicie. Puede solicitar que una Actividad comience a administrar un objeto de Cursor no administrado llamando al Activity.startManagingCursor().

Actualización:

managedQuery ahora es obsoleto (a partir de Android 3.0).

+1

@ Pentium10: Genial! ¿Y la diferencia entre usar android.provider.MediaStore.Images.Media.query() y context.getContentResolver.query()? – Macarse

+0

Lo siento, no lo sé. Tal vez no es así. – Pentium10

+0

Respondió la pregunta de @Macarse :( – MBillau

Cuestiones relacionadas