Domanda

La mia domanda è credo abbastanza semplice, ma non credo che la risposta sarà ... Ho un sacco di contenuti di avere nella mia applicazione per farlo funzionare correttamente, e sto pensando di mettere tutto in una banca dati, e distribuirlo in un database embeded con l'applicazione in il mercato. L'unico problema è che non ho idea di come farlo. So che posso estrarre un file db da Eclipse DDMS con il contenuto del mio database, e suppongo che ho bisogno di mettere nella cartella di asset della mia candidatura, ma poi come fare l'uso dell'applicazione è di rigenerare il database dell'applicazione ? Se si dispone di un collegamento ad un codice o di aiuto, che sarebbe grande. Grazie

È stato utile?

Soluzione

Bene per ottenere quello che stai chiedendo, si potrebbe mettere il file .db nella vostra attività / directory e copiarlo in posizione la prima volta che si avvia la vostra applicazione .....

final String DB_DESTINATION = "/data/data/YOUR_PACKAGE_NAME/databases/MyDatabaseFile.db";

// Check if the database exists before copying
boolean initialiseDatabase = (new File(DB_DESTINATION)).exists();
if (initialiseDatabase == false) {

    // Open the .db file in your assets directory
    InputStream is = getContext().getAssets().open("MyDatabaseFile.db");

    // Copy the database into the destination
    OutputStream os = new FileOutputStream(DB_DESTINATION);
    byte[] buffer = new byte[1024];
    int length;
    while ((length = is.read(buffer)) > 0){
        os.write(buffer, 0, length);
    }
    os.flush();

    os.close();
    is.close();
}

Dove "initialiseDatabase" è un po 'di flag che indica se l'applicazione è stata lanciata per la prima volta.

Anche se, se siete alla ricerca di memorizzare una grande quantità di dati, come lei ha detto: vi consigliamo caldamente di evitare il gonfiore il file APK con esso, e utilizzare la connessione a Internet per scaricare i record del database (da un server ospitato) dopo la applicazione è stata lanciata. In questo modo è possibile visualizzare una barra di avanzamento che indica all'utente il motivo per cui sono in attesa di un lungo periodo di tempo per iniziare a utilizzare l'applicazione. Rendere l'APK particolarmente grande di solito scoraggia la gente di installare in primo luogo.

Altri suggerimenti

È possibile implementare la soluzione middle-of-the-road: approccio Usa sopra, ma invece di distribuire file di db metterlo su qualche server. Nei miei file fare esperienza è solo il 10% del tempo di elaborazione, resto è parsing e serializzazione immagini per db

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top