我有片段,我在每个片段中缓存数据。我通过从服务器以 doInBackground 方法下载数据并将其保存在 onPostExecute 中,从而将数据缓存在 AsyncTask 中。所以我总是在 onPostExecution 中打开数据库连接。如果我滚动“快速”抛出片段,我认为 AsyncTasks 正在通过预览实例,并且行中会有一个android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
,我打开连接(获取dbHelper.getWritableDatabase()
)
我认为有两种方法可以解决这个问题:
onPostExecution 方法必须等到预览 AsyncTask (onPostExecution) 完成
有一种方法可以对 AsyncTask 的所有实例使用相同的数据库连接,而不会相互锁定它们
这个对吗?有人出主意,如何做到这一点?