Assez simple. Quelle est la différence entre ces trois?
Je veux la liste de chaque Image dans un appareil.
Dois-je utiliser managedQuery()
, android.provider.MediaStore.Images.Media.query()
ou context.getContentResolver.query()
Assez simple. Quelle est la différence entre ces trois?
Je veux la liste de chaque Image dans un appareil.
Dois-je utiliser managedQuery()
, android.provider.MediaStore.Images.Media.query()
ou context.getContentResolver.query()
managedQuery()
utilisera ContentResolver query(). La différence est
que avec managedQuery()
de l'activité de conserver une référence à votre
Curseur et le fermer à chaque fois que nécessaire (en onDestroy()
, par exemple.) Si
vous n' query()
vous-même, vous aurez à gérer le Curseur en tant que
sensible à la ressource. Si vous oubliez, par exemple, close()
dans
onDestroy()
, que vous ayez une fuite sous-jacent ressources (logcat vous avertira
à ce sujet.)
Pour interroger un fournisseur de contenu, vous pouvez utiliser soit l' ContentResolver.query()
méthode ou l' Activity.managedQuery()
méthode. Les deux méthodes utilisent le même ensemble d'arguments, et tous deux retournent un objet Curseur. Toutefois, managedQuery()
provoque l'activité pour gérer le cycle de vie du Curseur. Géré Curseur s'occupe de toutes les subtilités, comme les décharger lorsque l'activité s'arrête, et lancement d'elle-même lorsque l'activité redémarre. Vous pouvez demander à une Activité pour commencer à gérer un non géré objet Curseur pour vous en appelant Activity.startManagingCursor()
.
Mise à jour:
managedQuery
est maintenant obsolète (Android 3.0).
managedQuery(..) est maintenant obsolète (Android 3.0). Attention..
Android erreur: java.lang.IllegalStateException: tentez d'actualiser déjà fermé curseur
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.