Dzieje się tak z powodu:
db.close();
w metodach:
void addContact(Contact contact)
public void deleteContact(Contact contact)
Nie powinieneś zamykać połączenia z podstawową bazą danych, chyba że naprawdę nie zamierzam już z nim pracować. Użyj SQLiteOpenHelper:close
, po zakończeniu pracy.
Co więcej, wywołania getReadableDatabase()
i getWriteableDatabase()
zwracają ten sam obiekt bazy danych w 99% przypadków i nie ponownie zainicjować połączenie z bazą danych zamknięte ręcznie przez Ciebie.
Nie daj się zwieść tym nazwom metod.