0

Problème: au retour d'une deuxième activité, la listview de la première activité ne reflète pas les modifications apportées à la base de données par la deuxième activité. Si je fais un changement trivial au code (pour rendre l'émulateur heureux) et que j'applique l'appli, la liste des vues montre maintenant avec précision que la base de données change la 2ème activité faite durant la dernière session.La liste d'affichage de la 1ère activité n'est pas mise à jour après l'insertion de la 2ème activité dans la base de données via ContentProvider; onLoadFinished non appelé

Les entrailles de l'application:

MainActivity: extends Activity implements LoaderManager.LoaderCallbacks<Cursor> 
=>onCreate: SimpleCursorAdapter set; getLoaderManager().initLoader(LOADER_ID, null, this) 
=>onResume: super.onResume(); getLoaderManager().restartLoader(0, null, this) 

... oh mon gawd! Il y a le problème: initLoader et restartLoader utilisent différents ID de chargeur.

Cela m'a bloqué pendant les cinq dernières heures. Pourquoi je quitte cette question: en essayant de résoudre mon problème, je n'ai pas rencontré cette réponse (peut-être que c'est trop osé pour suggérer que quelqu'un cherche), mais pour la prochaine personne qui trébuche de cette façon unique, voici une réponse potentielle.

+0

studmann Avez-vous réussi à résoudre ce problème? Mon listview n'est pas non plus actualisé bien que j'appelle correctement setNotificationUri() et notofyChanges(). – f470071

Répondre

0

Assurez-vous que les ID LoaderManager sont les mêmes dans initLoader et restartLoader. En plus de tous les autres posts d'Alex et CommonsWare et de tout le reste que vous rencontrerez en cherchant la solution à votre listview qui échoue à mettre à jour, c'est autre chose qui vous est peut-être arrivé .

Au cours de mes recherches pour ce qui pourrait être mal, je note également que je ne l'avais pas mis en œuvre: cursor.setNotificationUri (. GetContext() getContentResolver(), uri);

(How do CursorLoader automatically updates the view even if the app is inactive?)

... deux tutoriels différents que je suivais pour savoir comment mettre en œuvre les fournisseurs de contenu ne sont que setContentNotificationUri dans leurs méthodes de requête de fournisseurs; mais ils ont utilisé un constructeur de requêtes et je n'ai pas (peut-être setContentNotificationUri est inclus dans le queryBuilder? Recherche rapide n'a pas suggéré que c'était le cas).

Questions connexes