尝试更新我的旧应用,其中某些方法已被弃用。我发现如果我想使用显示来自 db 的数据的 ListView,我应该使用 LoaderManager + CursorLoader。 CursorLoader 与内容提供者一起工作。那么对于我的数据库中的每个表,我现在应该创建内容提供程序吗?我为什么要 ?据我所知,内容提供者用于与其他应用程序共享一些数据库信息,但我的应用程序不共享任何信息。那么我可以在没有内容提供者的情况下使用 CursorLoader 吗???
最佳答案
我写了一个 blog post在这个问题上。您也可以查看 answer了解更多信息。希望它会为您解决问题。
正如 Barak 所说,可以实现 CursorLoader
通过扩展 AsyncTaskLoader<Cursor>
无需内容提供者类(class)。也就是说,大多数教程和示例代码使用 ContentProvider
s,而且 Android 团队似乎也鼓励使用它。它也比实现自己的类要简单得多。
也就是说,如果您真的不想使用内容提供程序,Dianne Hackborn(Android 框架开发人员之一,在 SO 上也称为“hackbod”)建议您自己编写使用您的数据库类而不是内容提供程序的加载程序。最简单的方法就是获取CursorLoader
的来源。兼容性库中的类,并将提供程序查询替换为对您自己的数据库帮助程序类的查询。
关于java - 安卓:CursorLoader、LoaderManager、SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11017646/