在我的主活动的
onCreate()
方法中,我调用了dbManager的构造函数,然后调用打开函数创建一个SQLiteOpenHelper
实例,最后在其上调用getWritableDatabase()
。
在UIThread中,我向数据库添加记录并将这些记录保存到ArrayList中。另外两个线程检查ArrayList并进行操作,然后更新列表和数据库。
现在我想在UI中添加一个按钮,使用AsyncTask
删除数据库和列表记录。
我读过SqliteOpenHelper
对象只拥有一个数据库连接。因此,如果有一个helper实例,则只有一个db连接。该连接可以从多个线程中使用,并且SqliteDatabase对象使用Java锁来保持访问序列化。因此,如果有多个线程写入数据库,一个线程将等待前一个线程完成其操作吗?
添加新功能(全部删除)可能会创建问题,因为我必须避免其中一个线程尝试编辑不再存在的记录。如何实现我的目标?谢谢。