我有一个在 AsyncTasks 中从互联网下载数据的服务。它解析数据并将其存储在数据库中。该服务持续运行。
当服务写入数据库时,活动会尝试从数据库中读取更改。
我有一个数据库助手,有多种写入和读取方法。这会导致问题吗?可能尝试从两个不同的线程打开数据库?
关于数据库中的并发问题,已经有很多书籍讨论和撰写。
但是像维基百科一样使用 stackoverflow 我发现了一些有趣的东西thing https://stackoverflow.com/questions/3610147/android-sqlite-concurrency-without-exceptions:
Android 上的 Sqlite 允许您从多个进程访问数据库
读取,但如果您当前正在从一个进程写入,则读取并
从其他进程写入将引发异常,因为第一个
write 对数据库有锁。
然后数据库就可以很好地免受其他线程的影响 . 坏消息是您必须管理这些异常,如果你有一个大数据库(意味着有很多表和大量数据交换),这可能是一项肮脏的工作
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)