2

Je suis déconcerté par NotifyChange machenism utilisé dans contentProvide:android ContentProvider NotifyChange

// Tell the cursor what uri to watch, so it knows when its source data changes 
     c.setNotificationUri(getContext().getContentResolver(), uri); 

et

getContext().getContentResolver().notifyChange(noteUri, null); 

Voici les questions (supposons que le fournisseur et le client sont dans des emballages différents):

  1. Est-ce que contentResolver renvoyé par Provider est identique à Resolver retourné par le client?
  2. Le curseur est-il identique à celui renvoyé par le fournisseur et le client?
  3. Quelle est la résolution d'Uri pour être informé des changements? la table entière uri ou une rangée?

S'il vous plaît préciser

Répondre

0

Je sais que c'est une vieille question. Je réponds pour que ce soit utile pour quelqu'un qui rencontre cette question.

  1. Est-ce le ContentResolver retourné par le fournisseur le même que résolveur retourné par le client?

Oui, c'est pareil.

  1. Le curseur est-il le même que celui renvoyé par le fournisseur et le client?

je suppose, que vous demandez dans le contexte de votre premier extrait de code qui est vu à l'intérieur méthode de requête(). Ici, vous définissez la notification uri sur le curseur qui doit être retourné au client. Donc, évidemment, le client et le fournisseur utilisent le même curseur.

  1. Quelle est la résolution d'Uri à notifier? la table entière uri ou une rangée?

Uri pour la notification dépend de l'opération:

  1. insert() - La notification Uri est la table Uri annexée à l'ID de la ligne nouvellement insérée.

  2. delete() et update() - Ici, l'Uri est la table Uri ajoutée avec l'ID de la ligne supprimée ou mise à jour.

Questions connexes