Comment supprimer la base de données SQLite D'Android programmatically

je voudrais supprimer le fichier de base de données du programme Android file system ? Puis-je avoir un lancement de script shell adb qui tour à tour exécute un script shell dans L'Espace Android pour faire la suppression de la base de données? Est-ce que je peux faire cela à partir d'un test JUnit (avec un appel system() )?

Comment supprimer une base de données entière dans Android? Je dois faire disparaître tout ça pour tester la création d'une base de données. Je peux laisser tomber les tables, mais ce n'est pas assez. C'est dans l'émulateur, pas sur un téléphone.

138
demandé sur Eric Leschinski 2010-12-10 08:47:12

8 réponses

une fois que vous avez votre contexte et que vous connaissez le nom de la base de données, utilisez:

context.deleteDatabase(DATABASE_NAME);

lorsque cette ligne est exécutée, la base de données doit être supprimée.

387
répondu Luke Dunstan 2014-11-01 20:56:43

il est facile tapez juste de votre shell:

adb shell
cd /data/data
cd <your.application.java.package>
cd databases
su rm <your db name>.db
16
répondu barmaley 2016-10-12 10:32:26

The Sqledatabase.la méthode statique deleteDatabase(File) a été ajoutée dans L'API 16. Si vous souhaitez écrire des applications qui prennent en charge les appareils plus anciens, comment faites-vous cela?

j'ai essayé: "151930920 de fichier".supprimer ();

mais ça fout en L'air SQLiteOpenHelper.

Merci.

PEU IMPORTE! j'ai réalisé plus tard que vous utilisez Contexte .deleteDatabase (). Le Contexte one fonctionne bien et supprime le journal aussi. Fonctionne pour moi.

aussi, j'ai trouvé que je devais appeler SQLiteOpenHelp.fermer () avant de faire la suppression, de sorte que je pourrais alors utiliser LoaderManager pour le recréer.

9
répondu Rick Falck 2013-09-30 21:07:15

, Essayez:

this.deleteDatabase(path); 

ou

context.deleteDatabase(path);
9
répondu Dnyanesh 2015-10-08 06:20:37

aussi de Eclipse vous pouvez utiliser DDMS qui le rend vraiment facile.

assurez-vous simplement que votre émulateur est en marche, puis passez à la perspective DDMS dans Eclipse. Vous aurez un accès complet à l'Explorateur de Fichiers qui vous permettra d'entrer et de supprimer facilement l'ensemble de la base de données.

5
répondu xtempore 2010-12-10 06:20:40

contexte.deleteDatabase (DATABASE_NAME); supprimera la base de données uniquement si toutes les connexions sont fermées. Si vous maintenez l'instance singleton pour gérer votre helper de base de données - il est facile de fermer la connexion ouverte.

dans le cas où le databasehelper est utilisé à plusieurs endroits par instanciation directe, le processus deleteDatabase + kill fera le travail même si certaines connexions sont ouvertes. Ceci peut être utilisé si le scénario d'application n'a aucun problème en redémarrant l'application.

3
répondu Aun 2014-11-03 07:42:19
context.deleteDatabase("database_name.db");

Cela pourrait aider quelqu'un. Vous devez mentionner l'extension sinon, cela ne fonctionnera pas.

3
répondu vishwanath mirji 2018-08-03 10:57:05

de Application Manager, vous pouvez supprimer l'ensemble de l'application avec des données. Ou juste des données par elles-mêmes. Cela inclut la base de données.

  1. naviguez vers les paramètres. vous pouvez accéder au menu Paramètres en votre menu apps ou, sur la plupart des téléphones, en tirant vers le bas la notification tiroir et appuyer sur un bouton.

  2. sélectionnez le sous-menu Apps. sur certains téléphones ce menu aura un nom légèrement différent comme Gestionnaire d'Applications.

  3. Balayez vers la droite pour l'Ensemble des applications de la liste. Ignore les listes D'applications en cours d'exécution et téléchargées. Vous voulez la liste de toutes les applications.

  4. , Sélectionnez l'application que vous souhaitez désactiver. un écran de propriétés apparaît avec un bouton pour Forcer l'Arrêt sur le coin supérieur gauche et une autre pour Désactiver ou désinstaller les mises à jour sur le côté supérieur droit.

  5. supprimer les données.

-2
répondu f470071 2016-04-05 13:58:29