2012-10-29 1 views
5

Im utilizzando il database per archiviare i messaggi, e se si disinstalla la mia app e di nuovo reinstallare la stessa app, il db rimane lo stesso, ma voglio cancellare il mio database, come risolvere questo ?Come cancellare db quando l'app viene disinstallata in Android

+0

Normalmente tutto dovrebbe essere eliminato quando si disinstalla app. Come l'hai provato? Hai davvero disinstallato l'app manualmente? Dove app store i dati? – Flo

risposta

4

Per ascoltare l'evento di disinstallazione è necessario implementare una trasmissione ricevuta, come:

<application 
android:icon="@drawable/ic_launcher" 
android:label="@string/app_name" > 
<activity 
    android:name=".UninstallIntentActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <action android:name="android.intent.action.DELETE" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:scheme="package" /> 
    </intent-filter> 



</activity> 

</application> 

E poi nel vostro UninstallIntentActivity è necessario utilizzare la riga successiva per eliminare il database:

context.deleteDatabase(DATABASE_NAME); 

si può vedere di più su questo argomento qui Listen Broadcast Before application uninstall

Spero che questo funziona per voi.

0

sottostante codice può aiutare a cancellare il database dall'applicazione

/** 
    * Re crate database 
    * Delete all tables and create them again 
    * */ 
    public void resetTables(){ 
     SQLiteDatabase db = this.getWritableDatabase(); 
     // Delete All Rows 
     db.delete(TABLE_NAME, null, null); 
     db.close(); 
    } 

fare uno metodo nella classe in cui si gestisce tramite la vostra gestione di database. dove cassa altri metodi come aggiungere, aggiornare ecc ..

+2

come chiamare questo metodo, prima di disinstallare l'app? – Vishnu

0

Tutti i dati inclusi i database, le preferenze, i file di dati locali memorizzati nella memoria interna vengono cancellati su una disinstallazione. Rimarranno intatti solo sull'aggiornamento dell'applicazione.

0

Penso che non sia una situazione ordinaria, perché quando si disinstalla l'app - tutti i db vengono rimossi automaticamente. Ma se ciò non accade, prova a cancellare i dati in Menu - Gestisci app - la tua app - Cancella i dati prima di disinstallarli.

0

Nel mio caso ho solo dimenticato di aggiungere sotto la linea di metodo ONUPGRADE di classe DatabaseHelper

onCreate(sqLiteDatabase);