2012-04-03 3 views
2

現在、タブ内に3つのアクティビティを持つタブ付きビューを持つAndroidアプリケーションを作成しようとしています。しかし、アクティビティはそれぞれ1つのデータベースにアクセスしますが、アンドロイドは2番目と3番目のタブにデータベースがロックされていないと苦情を言います(タブ1は最初に開始されたために取得しているためです)。どのデータベースでも3つのタブにアクセスできるようにするために何をすべきか知っていますか?複数のアクティビティにまたがるAndroidデータベース

答えて

0

オープンアプリの起動時に一度データベース(お持ちでない場合はApplicationサブクラスを作成)、およびこれまでのデータベースを閉じないでください。あなたのApplicationクラスのシングルトンまたはアクセサメソッドを使ってあなたの活動の間でデータベースを共有してください。

SQLite自体は、必要に応じて競合するスレッド間の順次アクセスを管理するため、ロックを自分で管理する必要はありません。 SQLiteのトランザクション性は、すべてのものをできるだけ早くストレージにフラッシュすることを意味するため、データベースを閉じる必要はありません。

このようにすれば、コードははるかに簡単になり、安全になります。

関連する問題