2011-11-12 11 views
0

並列実行中の2つの異なるスレッドからデータベースにアクセスする必要があるアプリケーションで、次のエラーが発生します。マルチスレッドを使用してsqliteにアクセスするとエラーが発生する

java.lang.IllegalStateException: attempt to acquire a reference on a close SQLiteClosable 

問題は、私は(このプロセスの持続時間)ねじ部にデータベースの負荷を行いながら、ユーザは同じで別のテーブルを変更するであろう主な活動のいずれかのボタンを押すことができることですデータベース。問題が発生する可能性のある箇所

このエラーを回避する手段はありますか?

+0

アクティビティ間の適切な同期化によってこの問題が解決されます。 – JimmyB

答えて

1

私のブログの記事をチェックしてくださいどうもありがとうございました。 sqliteデータベース接続を維持し共有する方法を説明し、トラブルを回避します。

http://www.touchlab.co/blog/single-sqlite-connection/

基本的には、それを "閉じる" グローバルシングルトンに1 SQLiteOpenHelperのインスタンスを保持していない、と決して。基本的にはファイル参照だけです。アプリケーションが閉じられると、ファイルハンドルは単独で閉じられます。

関連する問題