Ocurre debido a:
db.close();
en los métodos:
void addContact(Contact contact)
public void deleteContact(Contact contact)
No debe cerrar la conexión a la base de datos subyacente a menos que realmente no tenga la intención de trabajar más con él. Use SQLiteOpenHelper:close
, cuando hayas terminado tu trabajo.
Además, las llamadas a getReadableDatabase()
y getWriteableDatabase()
devuelven el mismo objeto de base de datos el 99 % de las veces, y no reinicialice la conexión de la base de datos cerrada manualmente por usted.
No se deje engañar por estos nombres de métodos.