Le titre résume ma question, mais pour élaborer essentiellement ce que je veux comprendre, c'est pourquoi les concepteurs Android veulent que les applications qui doivent travailler avec des données partagées utilisent un fournisseur de contenu plutôt que d'accéder simplement à la base de données SQLite directement?
La seule raison pour laquelle je peux penser est la sécurité car certains fichiers ne peuvent être accessibles que par certains processus et de cette manière, le fournisseur de contenu est le contrôleur d'accès qui garantit que chaque application dispose des privilèges appropriés avant d'autoriser l'accès en lecture et / ou en écriture au fichier de base de données. Est-ce la principale raison pour laquelle ContentProvider a été créé?
Le
ContentProvider
résume également toutes les communications inter-processus nécessaires pour communiquer avec d'autres applications tierces. Devoir écrire ce code vous-même serait une énorme douleur.la source
ContentProvider est également une abstraction qui cache les détails de la façon dont les données sont stockées / générées. Par exemple, dans l'une de mes applications, j'ai un fournisseur de contenu qui renvoie des images PNG. Ces images ne sont stockées nulle part, elles sont générées à la demande.
la source