2016-04-24 5 views
0

Derzeit entwickle ich eine Android-App, die die SQLite-Datenbank vom Server herunterlädt, sobald sie geöffnet wird. Ich muss diese Datenbankdatei sehr häufig in der App verwenden und muss häufig die Daten aus dieser Datenbankdatei abrufen. Also, was sollte der richtige Ort oder Verzeichnis dieser Datenbank in der mobilen sein, so dass ich diese Datenbankdatei effizient lesen/schreiben kann.Was sollte der Standort der SQLite-Datenbank in Android-Anwendung sein?

+0

Inhaltsanbieter, Syncadapter – Pomagranite

Antwort

0

Standardmäßig wird eine neu erstellte Datenbank wird in gespeichert:

//data/data/<Your-Application-Package-Name>/databases/<your-database-name> 

Aber dieser Ordner unzugänglich auf Nicht-Root-Geräten. eine Datenbank über das Internet zu übertragen ist für die Sicherheit riskant, aber wenn es absolut notwendig ist, können Sie MySQLiteOpenHelper Konstruktor wie folgt ändern:

public class MySQLiteOpenHelper extends SQLiteOpenHelper { 
    MySQLiteOpenHelper(Context context) { 
     super(context, "/mnt/sdcard/<your-app-name>/database_name.db", null, 0); 
} 

}

Auf diese Weise Sie speichern Ihre Datenbank in einem Ordner auf die SD-Karte.

Denken Sie daran, dass dieser Ansatz durch die Verwendung, werden Sie zum Schreiben auf externe Speicher in manifest.xml zusätzliche Berechtigungen benötigen:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

Sie hier weitere Informationen und Beispiele finden: Location of sqlite database on the device