Отървете се от по-голямата част от вашия close() методи, които извиквате в SQLiteDatabase . По-специално, не извиквайте close() в базата данни, предадена ви в onCreate() на SQLiteOpenHelper , и не продължавайте да отваряте и затваряте базата данни.
SQLiteOpenHelper държи базата данни, която извличате с getReadableDatabase() /getWritableDatabase() , а целта е да използвате повторно тази отворена SQLiteDatabase обект, особено когато работите в множество нишки.