managedQuery ( ) vs context.getContentResolver.query ( ) vs android.provider.something.query ()

? Macarse @ | Original: StackOverFlow

Bastante simple . ¿Cuál es la diferencia entre los tres?

Quiero que cada imagen en un dispositivo. ¿Debo usar managedQuery(), android.provider.MediaStore.Images.Media.query() o context.getContentResolver.query()

Top 5 Respuesta

1Pentium10 @

managedQuery() Utilizará la consulta del 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 que haces query() usted mismo, usted tendrá que manejar el cursor como un recurso sensible. Si se le olvida, por ejemplo, a close() en onDestroy(), Se le escape recursos subyacentes ( Logcat le advertirá sobre eso.)

Para consultar un proveedor de contenido, puede utilizar el método de ContentResolver.query() o el método Activity.managedQuery() . Ambos métodos tienen el mismo conjunto de argumentos, y ambos devuelven un objeto Cursor. Sin embargo, managedQuery() hace que la actividad de gestionar el ciclo de vida del cursor . Un cursor logrado maneja todas las sutilezas, como descargando propio cuando la actividad se detiene, y volver a consultar en sí cuando se reinicia la actividad. Usted puede pedir una actividad para comenzar a gestionar un objeto Cursor no administrado para usted llamando Activity.startManagingCursor() .

Update:

managedQuery Está ahora en desuso (a partir de Android 3.0 ) .

2user979247 @

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

http://stackoverflow.com/questions/5915597/android-error-java-lang-illegalstateexception-trying-to-requery-an-already-clos