Fragments があり、すべての Fragment にデータをキャッシュします。サーバーから doInBackground メソッドでダウンロードして AsyncTask にデータをキャッシュし、onPostExecute でデータベースに保存します。そのため、常に onPostExecution でデータベース接続を開きます。「高速」にスクロールしてフラグメントをスローすると、AsyncTasks がプレビュー インスタンスを通過しandroid.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
、接続を開く行に があると思います (getting dbHelper.getWritableDatabase()
)
これを解決するには、次の 2 つの方法があると思います。
onPostExecution メソッドは、プレビュー AsyncTask (onPostExecution) が終了するまで待機する必要があります
AsyncTask のすべてのインスタンスに対して、それらを相互にロックすることなく、同じデータベース接続を使用する方法があります。
これは正しいです?誰かアイデア、これを行う方法は?