8 votes

Comment remplacer un fichier de base de données sqlite existant par un nouveau fichier de base de données dans Android ?

Je réalise une application qui utilise une base de données sqlite. Il y a une fonction dans mon application qui a un bouton 'Mettre à jour la base de données'.

Lorsque l'utilisateur clique sur le bouton "Mettre à jour la base de données", je dois mettre à jour l'ancien fichier de base de données avec le nouveau fichier de base de données à partir de l'URL.

Comment faire ? La recherche me dit qu'on ne peut pas changer une base de données car elle est placée dans un fichier .apk. Il n'y a pas de solution à ce problème. Merci de m'aider. Je vous remercie.

5voto

Yaqub Ahmad Points 10931
private void importDatabase(String inputFileName) throws IOException
{
    InputStream mInput = new FileInputStream(inputFileName);
    String outFileName = YOUR_DB_PATH_HERE;
    OutputStream mOutput = new FileOutputStream(outFileName);
    byte[] mBuffer = new byte[1024];
    int mLength;
    while ((mLength = mInput.read(mBuffer))>0)
    {
        mOutput.write(mBuffer, 0, mLength);
    }
    mOutput.flush();
    mOutput.close();
    mInput.close();
}

EDIT :

Il vous sera peut-être utile :

Comment utiliser une base de données existante avec une application Android ?

3voto

Navdroid Points 915

Vous pouvez simplement télécharger le fichier db à partir de l'URL à l'aide du Download Manager et copier le fichier dans le chemin suivant

         /data/data/<YOUR PACKAGE NAME>/databases/

J'ai utilisé cette méthode et elle fonctionne.

1voto

StarsSky Points 2921

Au premier lancement de votre application, vous devez copier votre base de données dans le stockage externe/interne, hors du fichier apk. Lorsque vous avez besoin de mettre à jour (avec des déclarations ou en remplaçant toute la base de données), vous pouvez opérer dans la mémoire interne/externe sans problème. Lorsque vous mettez à jour votre application (et que la nouvelle application contient peut-être une nouvelle base de données), au premier lancement de la nouvelle application, vous devez remplacer la base de données que vous avez stockée dans la mémoire interne/externe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X