我有一个 Android 应用程序,它拥有一个相当大的数据库,可以从多个线程访问。我开始得到数据库锁定异常。我的问题是,有没有一种方法可以创建数据库队列(类似于 iOS 中的 FMDataBase.Queue)?
我做了一些研究,我不想创建一个帮助类,因为我的很多数据库查询和插入都是不同的,所以为每个查询创建一个方法是不可行的。
我可以把
if(!db.isLocked)
{
//exec(BLAH)
}
else
{
//try{thread.sleep(1000);}... then some retry code
}
在每个数据库功能上,但必须有比这更好的方法。
此外,如果线程在睡眠 1000 毫秒后被锁定,它仍然会崩溃,如果数据库被锁定 10 毫秒,我将等待 990 毫秒以等待查询运行,这对用户体验不利。
是否可以创建一个队列,以便在数据库解锁后执行任何发送到数据库的命令?
任何建议将不胜感激