Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 28
Construction d’un fournisseur de contenu 289
sur un type MIME de collection pour appeler une activité de sélection permettant de
choisir une instance dans cette collection, par exemple).
Le type MIME de la collection doit être de la forme vnd.X.cursor.dir/Y, où X est le nom
de votre société, organisation ou projet et où Y est un nom de type délimité par des points.
Vous pourriez, par exemple, utiliser le type MIME vnd.tlagency.cursor.dir/
sekrits.card.pin pour votre collection de secrets.
Le type MIME de l'instance doit être de la forme vnd.X.cursor.item/Y où X et Y sont
généralement les mêmes valeurs que celles utilisées pour le type MIME de la collection
(bien que ce ne soit pas obligatoire).
Étape n° 1 : créer une classe Provider
Un fournisseur de contenu est une classe Java, tout comme une activité et une intention. La
principale étape de la création d’un fournisseur consiste donc à produire sa classe Java, qui
doit hériter de ContentProvider. Cette sous-classe doit implémenter six méthodes qui,
ensemble, assurent le service qu’un fournisseur de contenu est censé offrir aux activités
qui veulent créer, lire, modifier ou supprimer du contenu.
onCreate()
Comme pour une activité, le point d’entrée principal d’un fournisseur de contenu est sa
méthode onCreate(), où l’on réalise toutes les opérations d’initialisation que l’on
souhaite. C’est là, notamment, que l’on initialise le stockage des données. Si, par exemple,
on compte stocker les données dans tel ou tel répertoire d’une carte SD et utiliser un
fichier XML comme "table des matières", c’est dans onCreate() que l’on vérifiera que ce
répertoire et ce fichier existent et, dans le cas contraire, qu’on les créera pour que le reste
du fournisseur de contenu sache qu’ils sont disponibles.
De même, si le fournisseur de contenu utilise SQLite pour son stockage, c’est dans
onCreate() que l’on testera si les tables existent en interrogeant la table sqlite_master.
Voici, par exemple, la méthode onCreate() de la classe Provider du projet ContentProvider/Constants :
@Override
public boolean onCreate() {
db=(new DatabaseHelper(getContext())).getWritableDatabase();
return (db == null) ? false : true;
}
Toute la "magie" de ce code se trouve dans l’objet privé DatabaseHelper, qui a été décrit
au Chapitre 20.
Livre Android.book Page 289 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 28
Construction d’un fournisseur de contenu 289
sur un type MIME de collection pour appeler une activité de sélection permettant de
choisir une instance dans cette collection, par exemple).
Le type MIME de la collection doit être de la forme vnd.X.cursor.dir/Y, où X est le nom
de votre société, organisation ou projet et où Y est un nom de type délimité par des points.
Vous pourriez, par exemple, utiliser le type MIME vnd.tlagency.cursor.dir/
sekrits.card.pin pour votre collection de secrets.
Le type MIME de l'instance doit être de la forme vnd.X.cursor.item/Y où X et Y sont
généralement les mêmes valeurs que celles utilisées pour le type MIME de la collection
(bien que ce ne soit pas obligatoire).
Étape n° 1 : créer une classe Provider
Un fournisseur de contenu est une classe Java, tout comme une activité et une intention. La
principale étape de la création d’un fournisseur consiste donc à produire sa classe Java, qui
doit hériter de ContentProvider. Cette sous-classe doit implémenter six méthodes qui,
ensemble, assurent le service qu’un fournisseur de contenu est censé offrir aux activités
qui veulent créer, lire, modifier ou supprimer du contenu.
onCreate()
Comme pour une activité, le point d’entrée principal d’un fournisseur de contenu est sa
méthode onCreate(), où l’on réalise toutes les opérations d’initialisation que l’on
souhaite. C’est là, notamment, que l’on initialise le stockage des données. Si, par exemple,
on compte stocker les données dans tel ou tel répertoire d’une carte SD et utiliser un
fichier XML comme "table des matières", c’est dans onCreate() que l’on vérifiera que ce
répertoire et ce fichier existent et, dans le cas contraire, qu’on les créera pour que le reste
du fournisseur de contenu sache qu’ils sont disponibles.
De même, si le fournisseur de contenu utilise SQLite pour son stockage, c’est dans
onCreate() que l’on testera si les tables existent en interrogeant la table sqlite_master.
Voici, par exemple, la méthode onCreate() de la classe Provider du projet ContentProvider/Constants :
@Override
public boolean onCreate() {
db=(new DatabaseHelper(getContext())).getWritableDatabase();
return (db == null) ? false : true;
}
Toute la "magie" de ce code se trouve dans l’objet privé DatabaseHelper, qui a été décrit
au Chapitre 20.
Livre Android.book Page 289 Dimanche, 8. novembre 2009 12:23 12
