Stává se to kvůli:
db.close();
v metodách:
void addContact(Contact contact)
public void deleteContact(Contact contact)
Neměli byste zavírat připojení k podkladové databázi, pokud to skutečně neuděláte nehodláte s ním dále pracovat. Použijte SQLiteOpenHelper:close
, až dokončíte svou práci.
Navíc volání getReadableDatabase()
a getWriteableDatabase()
v 99 % případů vracejí stejný databázový objekt a nedělají znovu inicializovat připojení k databázi, které jste ručně uzavřeli.
Nenechte se zmást těmito názvy metod.