我无法理解如何在android上订阅数据库更新(SQLiteDatabase)?
目前有几个问题:
我尝试使用FileObserver(订阅数据库文件的MODIFY事件),但它有问题:
我尝试使用FileObserver包 - >更新对象数据库 - >邮寄给订阅者,但由于某些原因,在bd中数据仍然不相关。
使用ContentProvider请不要提供,因为暗示不仅可以在UI中获得更改。
所以,问题是:我可以以某种方式关注数据库的更新吗?
答案 0 :(得分:1)
SQLite主要用于嵌入式/独立数据库,并不是典型客户端 - 服务器数据库的最佳解决方案,例如MySQL(等)按照: -
SQLite与客户端/服务器SQL数据库无法直接比较 自SQLite以来,MySQL,Oracle,PostgreSQL或SQL Server等引擎 正试图解决另一个问题。
客户端/服务器SQL数据库引擎努力实现共享 企业数据存储库。他们强调可扩展性, 并发,集中和控制。 SQLite努力提供 各个应用程序和设备的本地数据存储。 SQLite的 强调经济,效率,可靠性,独立性和 简单。
SQLite不会与客户端/服务器数据库竞争。 SQLite竞争 用fopen()。
正如您所总结的那样,跨设备同步SQLite是有问题的,而基于服务器的解决方案将在很大程度上消除由于它被设计为数据的单一来源而实际提取的问题。
Google的Firebase可能是问题的解决方案,并且得到了相对较好的Android支持(单个SDK),并且可能比其他基于服务器的解决方案更容易实现,例如MySQL。
我可以以某种方式关注数据库的更新吗?
是的,你可以,但与设计用于应对同步的解决方案相比,它不是“在公园散步”。
答案 1 :(得分:0)
我发现的一个解决方案是ContentProvider,它由Android从API 1支持。不幸的是,它不是完全异步的更好的解决方案,但在大多数情况下它都有效。