Débarrassez-vous de la plupart de vos close() méthodes que vous appelez sur SQLiteDatabase . Notamment, n'appelez pas close() sur la base de données qui vous est transmise dans onCreate() de SQLiteOpenHelper , et ne continuez pas à ouvrir et à fermer la base de données.
SQLiteOpenHelper conserve la base de données que vous récupérez avec getReadableDatabase() /getWritableDatabase() , et le but est que vous réutilisiez cette SQLiteDatabase ouverte objet, en particulier lorsque vous travaillez sur plusieurs threads.