Possible d'écrire fournisseur de contenu personnalisé pour la base de données du système existant?
Question
Je ne sais pas de l'utilité absolue de cela, mais semble comme si il devrait être possible et utile.
Pouvez-vous étendre ContentProvider
de fournir URIs
représentant de nouvelles requêtes (par exemple, des jointures sur plusieurs tables non spécifiées par URIs
existantes) pour une base de données de système existant?
L'alternative semble être que je dois écrire une série de cursor queries
puis les rejoindre -. Semble comme beaucoup de duplication de code inutiles
J'ai essayé ce pour les contacts database
comme un exercice, mais pas d'amour à ce jour.
Le point crucial semble être que je ne peux pas ouvrir un database
dans un autre package lors de la phase d'installation.
Suis-je juste complètement dans le champ gauche ici?
Il est possible que je suis nouvelle à la fois Java and Android
.
Commentaires et / ou des pointeurs vers des ressources pertinentes sont appréciés.
Merci,
Steve
La solution
Pouvez-vous étendre à ContentProvider fournir URIs représentant de nouvelles requêtes (À savoir, les jointures entre plusieurs tables non spécifiée par URIs existant) pour un base de données du système existant?
Pas vraiment, seulement parce que vous ne disposez pas d'un accès direct aux bases de données du système existant, en termes de SQLite. Maintenant, la création d'un ContentProvider
qui exécute vos jointures pour vous, en tant que mesure de réutilisabilité, est certainement faisable, bien que je recevrais inquiet au sujet les frais généraux de performance de multiples sauts inter-processus.