我想从2 AsyncTask
s。
我只有一个SQLiteDatabase
对象的静态实例,AsyncTask
都用SerialExecutor
执行,当我启动两个数据库事务时,我传递的是{{1}并且为两个插入调用SQLiteTransactionListener
回调(我已经尝试使用onCommit
和beginTransactionWithListenerNonExclusive()
),并且第二个插入仍然无法写入我的数据库(没有任何例外,没有任何指示它失败了。)
基本上,我有一个beginTransactionWithListener()
,在AsyncTaskLoader
中,我读了我的JSON,然后我开始插入我的数据库中的第一个onLoadFinished
,因为这样做有一个按钮可以提取一个列表,并从第一个AsyncTask
写入的同一个表中填充ListView
个数据。
当我点击asyncTask
中的任何项目时,我会获取与此选定项目相关的数据,并在同一个表格中插入一个新条目(所有这些内容都会在第二个{ListView
中进行1}})。
第二个AsyncTask
插入的onCommit
回调被调用,当第二个asyncTask
完成时(asyncTask
被调用),我开始一个我认为的新活动读取新插入的数据(有趣的是,无法插入无关紧要)。
即使我的两个onPostExecuted
都是串行执行的(意味着第二个应该等待第一个完成,对吗?)并且AsyncTask
告诉我数据已插入,只有第一个Listener
成功插入数据。为什么会这样?