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
risposta
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.
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 ..
come chiamare questo metodo, prima di disinstallare l'app? – Vishnu
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.
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.
Nel mio caso ho solo dimenticato di aggiungere sotto la linea di metodo ONUPGRADE di classe DatabaseHelper
onCreate(sqLiteDatabase);
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