2010-11-22 5 views
6

Selon ce que je comprends, Content Provider est un moyen d'accéder au contenu de la base de données.Content_URI dans le fournisseur de contenu

Et pour accéder à la base de données, la partie Autorité est requise. Cette partie d'autorité est fournie par CONTENT_URI. Ainsi Content_URI est un moyen de donner autorité à la base de données. En ce qui CONTENT_URI est concerened, il est généralement de la forme

content://com.example.transportationprovider/trains/122 
______ |____________________________________|_____ |___ 
    A      B      C  D 
Where A = Content, 
     B = Authority Part 
     c = Path determining what data to request 
     D = specific data 

Au-dessus de scénario est un scénario idéal où en on passe/trains comme le seul nom de base de données. Mais si, j'ai le content_uri suivant:

content://com.example.transportationprovider/land/bus/133 

Dans ce cas, /land/bus est les segments de chemin.

Mais alors en interne comment ces données sont stockées dans la base de données? Ou comment le fournisseur de contenu interprète ces données?

S'il vous plaît aidez-moi.

Répondre

6

La réponse simple est qu'elle est stockée dans la base de données comme bon vous semble. Tout dans le chemin, et le mappage du chemin vers la base de données en dessous, est défini par l'auteur du ContentProvider.

Plus ou moins, le modèle que vous souhaitez utiliser est que vous avez un chemin par table dans votre base de données.

Dans certains cas, vous pouvez avoir besoin de chemins supplémentaires. Typiquement, cela signifie exposer une autre "vue" de la base de données ... Le Contacts API en fournit un bon exemple. Pourquoi voulez-vous imposer ce type de «terre/bus» hirarchique? Pourquoi ne pas simplement "bus" et "train". avec une table SQL chacun? Les tables SQL ne sont pas des classes Java. Ils n'ont pas de relations d'héritage et ce genre de recherche n'est pas nécessaire.

+0

merci pour votre message !!! Enfin, quelqu'un a osé répondre à ma question. Je n'essayais pas d'imposer une quelconque hiérarchie, mais c'était la question aléatoire qui me venait à l'esprit. – Ashish

+0

Oui, il est généralement plus facile de ne pas appliquer hirarchie par chemin, mais plutôt par relation de table ou par code. Quant à répondre, mon plaisir. Avez-vous d'autres questions? Si ma réponse a complètement répondu à votre question, veuillez la vérifier comme satisfaisant votre question. Cela aidera à l'enlever de la liste des «questions sans réponse» afin que les gens puissent voir que c'est complet avec une bonne réponse. Aussi, cela m'aidera avec ma réputation. : P – jcwenger

Questions connexes