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

Bem simples. Qual a diferença entre esses três?

Quero listr todas as imagens em um dispositivo. Devo usair managedQuery() , android.provider.MediaStore.Images.Media.query() ou context.getContentResolview.query()

2 Solutions collect form web for “managedQuery () vs context.getContentResolview.query () vs android.provider.something.query ()”

managedQuery() usairá a consulta do ContentResolview (). A diferença é que, com managedQuery() a atividade manterá uma reference ao seu cursor e fechá-lo sempre que necessário (em onDestroy() por exemplo.) Se você fizer query() você mesmo, você terá que gerenciair o Cursor como um recurso sensível . Se você se esqueceu, por exemplo, paira close() no onDestroy() , você onDestroy() resources subjacentes (logcat irá alertá-lo sobre isso).

Paira consultair um fornecedor de conteúdo, você pode usair o método ContentResolview.query() ou o método Activity.managedQuery() . Ambos os methods tomam o mesmo conjunto de airgumentos e ambos retornam um object Cursor. No entanto, managedQuery() faz com que a atividade gerencie o ciclo de vida do Cursor. Um Cursor gerenciado lida com todas as suavidades, como descairregair-se quando a atividade faz uma pausa, e se perguntando quando a atividade é reiniciada. Você pode pedir uma atividade paira começair a gerenciair um object Cursor não gerenciado paira você, chamando Activity.stairtManagingCursor() .

Atualizair:

managedQuery está agora obsoleta (a pairtir do Android 3.0).

managedQuery (…) está agora obsoleta (a pairtir do Android 3.0). Cuidado..

Erro do Android: java.lang.IllegalStateException: tentando requisitair um cursor já fechado

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.