Comment fonctionne getContentResolver ()?
J'ai regardé un cours sur l' ContentProvider
sur Internet montrant comment définir et utiliser un ContentProvider
.
J'étais confus au sujet de l'utilisation de la méthode nommée getContentResolver()
. Ce n'cette méthode de retour?
Mon ContentProvider
n'est pas instanciée et le code écrit simplement que getContentProvider().query()
.
Je ne comprends pas comment fonctionne ContentProvider
.
2 réponses
Il renvoie le résolveur de contenu.
Qu'est-ce que le résolveur de contenu?
Le résolveur de contenu est l'instance globale unique de votre application qui permet d'accéder à vos fournisseurs de contenu (et aux autres applications). Le résolveur de contenu se comporte exactement comme son nom l'indique: il accepte les demandes des clients et résout ces demandes en les dirigeant vers le fournisseur de contenu avec une autorité distincte. Pour ce faire, le résolveur de contenu stocke un mappage depuis autorités aux fournisseurs de contenu. Cette conception est importante, car elle permet un moyen simple et sécurisé d'accéder aux fournisseurs de contenu d'autres applications.
Le résolveur de contenu inclut les méthodes CRUD (create, read, update, delete) correspondant aux méthodes abstraites (insert, delete, query, update) dans la classe Content Provider. Le résolveur de contenu ne connaît pas l'implémentation des fournisseurs de contenu avec lesquels il interagit (et n'a pas besoin de le savoir); chaque méthode est passée à un URI qui spécifie le fournisseur de contenu avec lequel interagir.
Quel est le fournisseur de contenu?
Alors que le résolveur de contenu fournit une abstraction des fournisseurs de contenu de l'application, Content Providers fournit une abstraction de la source de données sous-jacente (c'est-à-dire un SQLite database
). Ils fournissent des mécanismes pour définir la sécurité des données (c'est-à-dire en imposant des autorisations de lecture / écriture) et offrent une interface standard qui relie les données dans un processus avec du code s'exécutant dans un autre processus.
Les fournisseurs de contenu fournissent une interface pour la publication et la consommation de données, basée sur un modèle D'adressage URI simple utilisant le content:// schema
. Ils vous permettent de découpler vos couches d'application des couches de données sous-jacentes, rendant votre source de données d'application agnostique en faisant abstraction de la source de données sous-jacente.
Source - androiddesignpatterns
GetContentResolver () renvoie une instance ContentResolver pour le package de votre application.
Le coller depuis developer.android.com
Les fournisseurs de contenu gèrent l'accès à un ensemble structuré de données. Ils encapsulent les données et fournissent des mécanismes pour définir la sécurité des données. Les fournisseurs de contenu sont l'interface standard qui relie les données dans un processus avec le code en cours d'exécution dans un autre processus.
Lorsque vous souhaitez accéder aux données d'un fournisseur de contenu, vous utilisez L'objet ContentResolver dans le contexte de votre application pour communiquer avec le fournisseur en tant que client. L'objet ContentResolver communique avec l'objet provider, une instance d'une classe qui implémente ContentProvider. L'objet fournisseur reçoit les demandes de données des clients, effectue l'action demandée et renvoie les résultats.
Http://developer.android.com/guide/topics/providers/content-providers.html