2
我有一個DownLoadData類,它擴展了異步任務,用於從Web服務下載主數據。 SQLite數據庫中有10個主表,每個表都需要單獨的Web服務調用。所以,在DownLoadData任務中,我有10個線程。每個將調用相應的Web服務,接收數據,然後將其插入到相應的表中。在SQLite中使用事務在JellyBean中給出錯誤
我開始交易_onPreExecute()_
並檢查是否所有線程都已完成後,我結束交易_onPostExecute()_
。
問題是,這種方法對ICS版本來說是完美的。它似乎不適用於果凍豆。該應用程序只與此logcat的消息掛每60秒:
04-02 14:53:23.263: W/SQLiteConnectionPool(1409): The connection pool for database '/data/data/com.c2info.liveorder/databases/DB' has been unable to grant a connection to thread 117 (AsyncTask #2) with flags 0x1 for 30.010002 seconds.
04-02 14:53:23.263: W/SQLiteConnectionPool(1409): Connections: 0 active, 1 idle, 0 available.
我開始和結束這樣的交易:
public LocalDatabase beginTransact() {
mdbHelper = new DatabaseHelper(ctx);
mdb = mdbHelper.getWritableDatabase();
execSQL("BEGIN");
return this;
}
public void endTransact() {
execSQL("END");
mdbHelper.close();
}
我還使用相同的數據庫實例進行的跨所有線程。