我有一个允许用户查询 sqlite DB 的应用程序。当应用程序启动时,它会下载一个 URL 以查看后台线程上是否有任何数据库更新。
不幸的是,如果用户选择了一个在更新运行时尝试查询数据库的函数,这会导致锁定发生。
我的问题是双重的。
在这种情况下避免冲突的最佳策略是什么。
- 将数据库复制到另一个文件更新它并复制回来
- 进行某种单例操作并使用它来安排队列中的操作。
- 循环并等待锁打开(尽管我不想阻止用户)
是否可以在应用程序终止之前暂停后台线程并在应用程序终止之前运行更新。
如果有人有任何建议,我将不胜感激,因为我需要运行更新,而用户无需停止使用该应用程序。