OnUpgrade () sqlite Datenbank in Android

Ich habe eine Android-Anwendung erstellt, die beim Start überprüft wird, wenn es eine neue Version der Anwendung gibt. Wenn ja, lade die Anwendung die neue apk-Datei herunter und installiere neue apk. Meine Anwendung benutzt die sqlite db. Aber dieses db, von einer Version zu anderen kann sich ändern. Ich denke, ich muss die Methode verwenden:

onUpgrade() 

Aber ich weiß nicht genau, wie man es benutzt.

  • Wie konfiguriere ich Proguard in Android Studio?
  • Android - Wie man eine Benachrichtigung zu einem bestimmten Datum in der Zukunft?
  • Laden Sie Live-Android-Webcam-Video auf RTP / RTSP Server
  • Android, wie man Knopftext fett macht, wenn gedrückt oder fokussiert
  • Android ausrichten in Top und Center in RelativeLayout
  • Wie kann ich auf die Alpha-Version meiner Android App bei Google Play zugreifen?
  • Wenn ich die Anwendung beginne, benutze ich diesen Code für die crete Datenbank (falls nicht vorhanden):

     DbHelper mDHelper = new DbHelper(context, DB_NAME, null, DB_VERSION) 

    Was soll ich ändern, wenn ich die onUpgrade() Methode verwenden onUpgrade() ? Und wann muss ich es anrufen?

  • "Android Studio" Debugging - Anzeige von Variablen als hexadezimal
  • Sind "GONE" die Leistung schädlich?
  • Seekbar für zwei Werte
  • Java / Android: java.lang.OutOfMemoryError beim Erstellen eines JSON-Objekts
  • Holen Sie sich aktuelle Wallpaper absolute Weg?
  • Berechnung der Distanz mit Linearer Beschleunigung Android
  • 2 Solutions collect form web for “OnUpgrade () sqlite Datenbank in Android”

    onUpgrade() wird aufgerufen (du nennst es nicht selbst), wenn die Version deines DB geändert wurde, was bedeutet, dass die zugrundeliegende Tabellenstruktur geändert wurde.

    Im Allgemeinen bedeutet das, dass das Betriebssystem dir sagt " Hey, du hast nach Datenbank-Struktur Version 10 gefragt, aber ich fand, dass wir etwas älter hierher haben, also ist dies die Chance, das zu beheben, bevor du mit der Datenbank (und möglicherweise Crash wegen Struktur-Mismatch) "

    In dieser Methode sollten Sie alles tun, was notwendig ist, um gut zu aktualisieren Struktur Ihrer alten Datenbank zu strukturieren passenden aktuellen Versionsanforderungen wie Hinzufügen / Drop-Spalten, Konvertieren von Zeileninhalten oder sogar fallen alten db vollständig und erstellen Sie es von Grund auf – für Android Es spielt keine Rolle, was du hier tust – es ist nur eine Art Notruf für deinen Code, um den nötigen Job zu machen (falls vorhanden). Sie müssen sich bewusst sein, dass Benutzer nicht häufig aktualisiert werden können, so dass Sie immer ein Upgrade von Version X auf Y verarbeiten müssen, um zu wissen, dass X möglicherweise nicht gleich (Y-1) ist.

    Wenn Sie das SQLiteOpenHelper verwenden, wird das OnUpgrade aufgerufen, wenn Sie die DB-Version ändern. Es besteht eine zusätzliche Voraussetzung dafür. Der db name muss gleich bleiben

     Old Version: dbName = "mydb.db" dbVersion = 1 New Version: dbName = "mydb.db" dbVersion = 2 

    Im onCreate des Content Providers erstellen Sie eine Instanz des SQLiteOpenHelper, die diese Params übernimmt. Ihre SQLiteOpenHelper-Implementierung würde so aussehen:

     public static final class MySQLiteOpenHelper extends SQLiteOpenHelper { public MySQLiteOpenHelper(Context context, int dbVersion, String dbName) { super(context, dbName, null, dbVersion); } @Override public void onCreate(SQLiteDatabase db) { //Code to create your db here } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // Code to upgrade your db here } } 

    Es wird auch angerufen, wenn du die Tabelle änderst oder weitere Tabellen in deiner Datenbank hinzufügst

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.