¿Cómo puede borrar todas las tablas en ActiveAndroid?

Tengo cerca de 20-30 tablas en mi base de datos de ActiveAndroid . Cuando logoutButton Quiero borrar todas las tablas. ¿Cómo puedo hacerlo en ActiveAndroid ?

  public void logOut() { //clear all tables } 

  SQLiteDatabase db = ActiveAndroid.getDatabase(); List<String> tables = new ArrayList<>(); Cursor cursor = db.rawQuery("SELECT * FROM sqlite_master WHERE type='table';", null); cursor.moveToFirst(); while (!cursor.isAfterLast()) { String tableName = cursor.getString(1); if (!tableName.equals("android_metadata") && !tableName.equals("sqlite_sequence")) { tables.add(tableName); } cursor.moveToNext(); } cursor.close(); for (String tableName : tables) { db.execSQL("DELETE FROM " + tableName); } 

Prueba esto:

  public void logOut() { new Delete().from(MyClass.class).executeSingle(); } 

Espero que esto podría ayudar a alguien usando Active Android.

Para borrar todos los registros de una tabla hay una manera fácil.

1) Primero Crea la clase "TruncatableModel" y extiende todos tus Modelos a esta clase

 public abstract class TruncatableModel extends Model { public static void truncate(Class<? extends Model> type){ final String tableName = Cache.getTableInfo(type).getTableName(); // Delete all rows from table ActiveAndroid.execSQL(String.format("DELETE FROM %s;", tableName)); // Reset ids ActiveAndroid.execSQL(String.format("DELETE FROM sqlite_sequence WHERE name='%s';", tableName)); } } 

.. así que después de extender, mi clase de modelo se vería como.

 @Table(name = "note") public class Note extends TruncatableModel { @Column(name ="idn") public Integer idn; @Column(name ="title") public String title; ... } 

2) Ahora puedo borrar todos los registros en la base de datos "nota" usando este código.

 Note.truncate(Note.class); 

Esto parece ser la manera más eficiente que cualquier otro método que he intentado.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.