This Android application on Google utilise la méthode suivante pour actualiser la base de données après avoir remplacé le fichier de base de données avec une sauvegarde:Remise à zéro ou actualisation d'une connexion de base de données
public void resetDbConnection() {
this.cleanup();
this.db =
SQLiteDatabase.openDatabase(
"/data/data/com.totsp.bookworm/databases/bookworm.db",
null, SQLiteDatabase.OPEN_READWRITE);
}
Je n'ai pas construit cette application, et je ne suis pas sûr de ce qui se passe. J'essaie de faire fonctionner cette idée dans ma propre application, mais les données semblent être mises en cache par les vues, et l'application continue à afficher les données de la base de données remplacée, même après avoir appelé cleanup() et rouvert la base de données . Je dois terminer et redémarrer l'activité afin de voir les nouvelles données.
J'ai essayé d'appeler invalide sur ma vue TabHost, qui contient à peu près tout. Je pensais que les vues seraient redessiner et rafraîchir leurs données sous-jacentes, mais cela n'a pas eu le résultat escompté.
J'ai fini par redémarrer l'activité par programme, ce qui fonctionne, mais cela semble être une mesure drastique. Y a-t-il un meilleur moyen?
Probablement vous devez requery vos curseurs et/ou notifiydataset de changements. – Pentium10