Android:什么是更好的,使用SQLiteCursorLoader或实现ContentProvider?

时间:2013-07-25 19:18:46

标签: android sqlite

我必须在ListView中显示SQLite数据库的内容,并在网上寻找2个选项:

Android Dev文档说,访问数据库不需要内容提供商,它应该用于与其他应用程序共享数据(我不需要)。您认为在效率,容易出错和简单方面哪些更好?

谢谢你们!

1 个答案:

答案 0 :(得分:0)

显然,共享数据是人们使用内容提供商的最常见原因。

  • sqlite和多个用户都有一些错误,虽然不是绝对的,但内容提供商通常只在一个线程中解决了这个问题,是的,这就是你在应用之间共享数据的时候。
  • 内容提供程序可以为您提供抽象级别,并可能减少代码维护,尤其是在内部数据库结构更改时。
  • 它允许您使用CursorLoader执行异步查询,卸载UI活动,这是设计建议。
  • 与数据库帮助程序结合使用,可以更轻松地使表和列名称正确,并缩小查看和维护代码的位置。
  • 在您的应用程序和内容提供程序之间使用数据库帮助程序或契约可以提供一些安全性,因为您可以为您和任何其他应用程序提供有关数据更新方法的方法。
  • 这也可以为您提供更好的数据完整性,具体取决于您的数据库结构的复杂程度。它离开了猜测工作,我应该首先更新表A,然后是表B或反过来。
  • 它可以帮助表连接和视图,所以你只需要弄清楚一次并将它们表示为URI。
  • 您可以创建一个URI来处理内容提供​​程序内部的原始查询以提供结果,否则可能很难用大多数教程中提供的普通URI结构编写。如果您必须编写相关查询,这也很有用。