2016-07-26 20 views
0

Wie kopieren Sie eine Datenbank neu, die im Ordner "Assets" für ein Android Studio-Projekt gespeichert ist?So aktualisieren Sie eine im Ordner "Assets" gespeicherte Datenbank Android

Ich bin mit der Android SQLite Assets Hilfsklasse

package com.acorney.migration; 

import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteQueryBuilder; 

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper; 

/** 
* Created by acorney on 25/07/2016. 
*/ 
public class databaseHelper extends SQLiteAssetHelper { 

private static final String TAG = SQLiteAssetHelper.class.getSimpleName(); 
private static final String DATABASE_NAME = "peopleDatabase.db"; 
private static final int DATABASE_VERSION = 1; 

public databaseHelper(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

Und ich eine Instanz davon in meinem MainActivity

databaseHelper dataB; 
dataB = new databaseHelper(this); 

Dies, glaube ich, eine leere Datenbank in Daten erstellt/Daten und kopiert die Datenbank von Assets in es

Allerdings habe ich die Datenbank von außerhalb der App (mit SQLite-Browser) aktualisiert und es wieder in den Ordner Assets gespeichert. Wie könnte ich die Updates der Datenbank in die Anwendung kopieren?

Schließlich braucht die App zu lesen und auf diese Datenbank schreiben - so dass Änderungen an der Datenbank im Ordner Assets gespeichert werden

Und wenn die App gestartet wird, sollte die App erstellen Sie einfach eine neue Instanz die Datenbank im Ordner "Assets".

Grundsätzlich - ich möchte, dass alle Datenbankänderungen im Ordner "Assets" passieren - ist das etwas, was getan werden kann?

Dank für Ihre Hilfe danken ist

+0

Deinstallieren Sie Ihre App und installieren Sie sie erneut – Nisarg

+0

Gibt es eine Möglichkeit dies durch den Code zu tun, so dass es jedes Mal passiert, wenn die App startet? –

+0

Nein, Sie können keine Änderungen über den Code anwenden – Nisarg

Antwort

0

Nein, das ist nicht möglich. Der Ordner "Assets" ist Teil der binären APK, die zur Laufzeit nicht geändert werden kann. Sie können es nur zur Kompilierzeit ändern.

+0

Gibt es eine Möglichkeit, das erneute Kompilieren zu erzwingen? –

+0

Seltsame Frage. Erkenne, dass der Code auf deinem PC kompiliert ist. – greenapps