Also,
ich schlage mal noch andere Möglichkeiten vor:
(1) Einmal könntest du die Tabelle mit der APP direkt mitlieferen, dann müsstest du sie gar nicht erst befüllen. Die SQLite-Tabelle speicherst du dafür im Ordner "assets". Genauso wie im Tutorial hier, habe ich auch schon ausprobiert, das funzt, alternativ google: use existing android table
EDIT: Eigentlich sollte "hier" klickbar sein, geht aber gerade iwie nicht, hier der Link so: www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
Um an deine SQLite-Tabelle zu bekommen, startest du den Emulator und dort kannst du sie einfach rauskopieren. Google: Database from Emulator android
Da findet sich bestimmt was.
(2) Damit die Tabelle beim Update neu erstellt wird, musst du checken, ob sie schon existiert, dafür könnte dir folgende Methode helfen:
private boolean checkDataBase(){
SQLiteDatabase checkDB = null;
try{
String myPath = DB_PATH + DATABASE_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
}catch(SQLiteException e){
//database does't exist yet.
}
if(checkDB != null){
checkDB.close();
}
return checkDB != null ? true : false;
}
Und so führst das aus:
boolean dbExist = checkDataBase();
if (dbExist) {
System.out.println("Die Datenbank existiert bereits");
// do nothing - database already exist
} else {
//Datenbank existiert
}
Alternativ könntest du auch einen Splashscreen erstellen, wo der Benutzer solange verharrt, bis die DB befüllt ist. Dann merkt der Benutzer gar nichts vom Ruckeln.
Habe deine App mal geladen, da hat nichts geruckelt (Motorola Moto G, 8GB)
Schau dir ruhig auch mal meine APP an und/oder bewerte/kritisiere sie.
Viele Grüße von
Stirnraten.de
PS: Witzige Idee das Swush
— geändert am 04.09.2014, 13:32:04
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.