从2个单独的AsyncTasks插入数据库

时间:2014-10-13 16:44:08

标签: android multithreading sqlite android-asynctask

我想从2 AsyncTask s。

插入我的数据库

我只有一个SQLiteDatabase对象的静态实例,AsyncTask都用SerialExecutor执行,当我启动两个数据库事务时,我传递的是{{1}并且为两个插入调用SQLiteTransactionListener回调(我已经尝试使用onCommitbeginTransactionWithListenerNonExclusive()),并且第二个插入仍然无法写入我的数据库(没有任何例外,没有任何指示它失败了。)

基本上,我有一个beginTransactionWithListener(),在AsyncTaskLoader中,我读了我的JSON,然后我开始插入我的数据库中的第一个onLoadFinished,因为这样做有一个按钮可以提取一个列表,并从第一个AsyncTask写入的同一个表中填充ListView个数据。

当我点击asyncTask中的任何项目时,我会获取与此选定项目相关的数据,并在同一个表格中插入一个新条目(所有这些内容都会在第二个{ListView中进行1}})。

第二个AsyncTask插入的onCommit回调被调用,当第二个asyncTask完成时(asyncTask被调用),我开始一个我认为的新活动读取新插入的数据(有趣的是,无法插入无关紧要)。

即使我的两个onPostExecuted都是串行执行的(意味着第二个应该等待第一个完成,对吗?)并且AsyncTask告诉我数据已插入,只有第一个Listener成功插入数据。为什么会这样?

0 个答案:

没有答案