Come cancellare il database SQLite da Android a livello di programmazione

Vorrei cancellare il file di database dal Android file system programmatico? Posso avere uno script di shell adb che a turno esegue uno script di shell nello spazio Android per eseguire l’eliminazione del database? Posso ottenere questo risultato da un caso di test JUnit (con una chiamata di system() )?

Come posso cancellare un intero database in Android? Devo far scomparire tutto, in modo da poter testare la creazione del database. Posso lasciare tavoli, ma non è abbastanza. Questo è nell’emulatore, non su un telefono.

Una volta che hai il tuo Contesto e conosci il nome del database, usa:

 context.deleteDatabase(DATABASE_NAME); 

Quando viene eseguita questa riga, il database dovrebbe essere cancellato.

È semplice digitare dalla tua shell:

 adb shell cd /data/data cd  cd databases su rm .db 

Il metodo statico SQLiteDatabase.deleteDatabase (File file) è stato aggiunto nell’API 16. Se vuoi scrivere app che supportano dispositivi precedenti, come fai?

Ho provato: file.delete ();

ma incasina SQLiteOpenHelper.

Grazie.

NON IMPORTA! In seguito mi sono reso conto che stai usando Context .deleteDatabase (). Il contesto funziona alla grande e cancella anche il diario. Per me va bene.

Inoltre, ho scoperto che avevo bisogno di chiamare SQLiteOpenHelp.close () prima di fare l’eliminazione, in modo che potessi usare LoaderManager per ricrearlo.

Provare:

 this.deleteDatabase(path); 

o

 context.deleteDatabase(path); 

Anche da Eclipse puoi usare DDMS che lo rende davvero facile.

Assicurati che il tuo emulatore sia in esecuzione, quindi passa alla prospettiva DDMS in Eclipse. Avrai pieno accesso a File Explorer che ti permetterà di entrare e cancellare facilmente l’intero database.

context.deleteDatabase (DATABASE_NAME); cancellerà il database solo se tutte le connessioni sono chiuse. Se stai gestendo l’istanza di singleton per gestire l’helper del database, è facile chiudere la connessione aperta.

In caso il databasehelper venga utilizzato in più punti creando direttamente un’istanza, deleteDatabase + killProcess eseguirà il lavoro anche se alcune connessioni sono aperte. Questo può essere utilizzato se lo scenario dell’applicazione non presenta problemi nel riavvio dell’app.

 context.deleteDatabase("database_name.db"); 

Questo potrebbe aiutare qualcuno. Devi citare l’estensione altrimenti, non funzionerà.

Da Gestione applicazioni, puoi cancellare l’intera applicazione con i dati. O solo dati da solo. Questo include il database.

  1. Vai a Impostazioni. È ansible accedere al menu delle impostazioni nel menu delle app o, nella maggior parte dei telefoni, abbassando il cassetto delle notifiche e toccando un pulsante.

  2. Seleziona il sottomenu Applicazioni. Su alcuni telefoni questo menu avrà un nome leggermente diverso come Application Manager.

  3. Scorri verso destra fino all’elenco Tutte le app. Ignora gli elenchi delle app in esecuzione e scaricate. Vuoi l’elenco Tutte le app.

  4. Seleziona l’app che desideri disabilitare. Viene visualizzata una schermata delle proprietà con un pulsante per Force Stop in alto a sinistra e un altro per Disabilita o Disinstalla aggiornamenti in alto a destra.

  5. Elimina dati.