Bli av med det mesta av din close() metoder som du anropar på SQLiteDatabase . Framför allt, anrop inte close() på databasen som skickades till dig i onCreate() av SQLiteOpenHelper , och fortsätt inte att öppna och stänga databasen.
SQLiteOpenHelper håller fast i databasen du hämtar med getReadableDatabase() /getWritableDatabase() , och poängen är att du återanvänder den öppnade SQLiteDatabase objekt, särskilt när du arbetar över flera trådar.