Ist es möglich, die interne DB auf die SDCard zu verschieben?

8

Da die Datenbank in meiner App wächst, wird immer mehr interner Telefonspeicher benötigt. Es gibt keine sensiblen / privaten Daten in der DB, also bin ich daran interessiert, es auf die SD-Karte zu verschieben.

Ich verwende SQLiteOpenHelper, um die Datenbankarbeit zu unterstützen. Es ist mein Verständnis, dass Sie dies nicht für DB-Zugriff auf der SD-Karte verwenden können, da Sie den DB-Pfad nicht definieren können. Es gibt jedoch einige (sehr schlechte) Beispiele im Internet, die vorschlagen, dass Sie diese Einschränkung außer Kraft setzen können. Allerdings habe ich noch nie eines dieser Code-Beispiele kompiliert.

Ist es möglich? Und wenn ja - WIE! Bitte beachten Sie, dass Froyos Funktion "Apps auf SD-Karte" nicht funktioniert, da interne Dateien nicht verschoben werden.

    
GJTorikian 08.08.2010, 23:06
quelle

4 Antworten

10

Verwenden Sie einfach:

%Vor%

Dabei kann DB_FULL_PATH ein Pfad zu Ihrer SD-Karte sein, wie zB /sdcard/mydatabase.db

Bearbeiten:

Das rufe ich in meiner Anwendung auf, um auf die Datenbank zuzugreifen ....

%Vor%

... und dies ist die db-helfer-Klasse, die ich verwende, die SQLiteOpenHelper tatsächlich erweitert, so dass Sie immer noch alles haben, was Sie von dieser Klasse wollen.

%Vor%     
Mathias Conradt 09.08.2010, 01:43
quelle
1

Ich habe festgestellt, dass ich in Android 2.2 einen vollständigen Pfad verwenden kann, aber in 2.1 hat die Context.openOrCreateDatabase () -Methode eine Ausnahme ausgelöst. Um dies zu umgehen, habe ich diese Methode umbrochen, um SQLiteDatabase.openOrCreateDatabase () direkt aufzurufen. Hier ist der Konstruktor für meinen erweiterten SQLOpenHelper

%Vor%     
Roger Keays 20.01.2012 14:20
quelle
0
%Vor%

Für mich funktioniert das, und WorkoutDBOpenHelper erweitert SQLiteOpenHelper und sein Konstruktor ruft einfach super für SQLiteOpenHelper auf.

%Vor%

Bitte beachten Sie, dass SQLiteopenHelper auch die Datenbank auf der Speicherkarte erstellt. Bei der Deinstallation der App wird die Datenbank jedoch nicht von der SD-Karte gelöscht.

Dies ist nicht die Antwort darauf, wie eine vorhandene interne DB auf SDCard verschoben wird, aber auf diese Weise können Sie eine Option zum Zeitpunkt der Erstellung auswählen. Ich arbeite daran, die bereits vorhandene Datenbank aus dem "Daten" -Verzeichnis der App auf die SD-Karte zu verschieben, aber es gibt keinen direkten Weg. Wird aktualisiert, sobald ich etwas herausgefunden habe.

    
Robin 07.12.2011 13:59
quelle
0

Das wird in Ordnung sein. Ich dachte

%Vor%     
Pyae Sone 12.11.2015 04:41
quelle

Tags und Links