2012-02-28 3 views
1

Je ne vois pas de méthodes SQLiteDatabase classe et SQLiteDatabaseOpener donc je suis arrivé cette erreur:SQLite Database Rouvrez dans Android

AndroidRuntime(806): Caused by: java.lang.IllegalStateException: attempt to acquire a reference on a close SQLiteClosable 

Quelle serait une bonne façon de le concevoir pour que je puisse utiliser la base de données tout au long dire une certaine classe?

Merci!

Répondre

1

La réponse est ici Exception: attempt to acquire a reference on a close SQLiteClosable

Celui-ci m'a rendu fou le plus longtemps. La solution que j'ai trouvée est assez simple: ne gardez pas de références aux objets SQLiteDatabase. Au lieu de cela, utilisez un SQLiteOpenHelper et appelez getWritableDatabase() chaque fois que vous en avez besoin. Des docs:

public synchronized SQLiteDatabase getWritableDatabase()

Create and/or open a database that will be used for reading and writing. Once opened successfully, the database is cached, so you can call this method every time you need to write to the database.

The answer was right there the whole time.