Alguém já fez algo parecido? Tem alguma dica boa?
Tenho de destruir e reconstruir a base com o app aberto.
Estou vendo algumas opções… meu medo são eventuais bugs e crachs.
Alguém já fez algo parecido? Tem alguma dica boa?
Tenho de destruir e reconstruir a base com o app aberto.
Estou vendo algumas opções… meu medo são eventuais bugs e crachs.
Na verdade o melhor seria limpar a base, deixar ela zerada, mas não deleta-la.
E zerar as chaves também…
Se eu deletar a base, quando o app reabrir, vai dar erro. Tenho de dar o mesmo Clear Data usado no Settings/Applicttion manager
A sua classe que cria um banco elá herda de SQLiteOpenHelper, certo ?
Lá tem dois metodos herdados o onCreate e o onUpgrade, no OnCreate você tem Scripts para criar sua base(CREATE TABLE, INSERT, etc) e no onUpgrade você faz script para deletar a estrutura da sua base :]
[quote=Valeio Bezerra]A sua classe que cria um banco elá herda de SQLiteOpenHelper, certo ?
Lá tem dois metodos herdados o onCreate e o onUpgrade, no OnCreate você tem Scripts para criar sua base(CREATE TABLE, INSERT, etc) e no onUpgrade você faz script para deletar a estrutura da sua base :][/quote]
Na real o que eu queria não era deletar a base no update, e sim em uma ação chamada “a qualquer momento”.
Com uma linha, deletei a base. Também preciso reiniciar o app, então fechei ele e chamei um alert com atraso de 1 segundo abrindo ele novamente.
[code] SQLiteDatabase.deleteDatabase(this.getDatabasePath(“baseDoMeuApp”)); // deleta base
AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); //reseta o app 1 segundo depois.
PendingIntent restartIntent = PendingIntent.getActivity(
this.getBaseContext(), 0, new Intent(getIntent()),
getIntent().getFlags());
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent);
System.exit(2);[/code]