尝试更新不赞成使用某些方法的旧应用程序。我发现,如果我想使用显示来自db的数据的ListView,则应该使用LoaderManager + CursorLoader。 CursorLoader与内容提供程序一起使用。因此,对于数据库中的每个表,我现在应该创建内容提供程序吗?我为什么要 ?据我所知,内容提供商用于与其他应用程序共享一些数据库信息,但是我的应用程序不共享任何信息。所以我可以在没有内容提供程序的情况下使用CursorLoader吗???

最佳答案

我已经在这个主题上写了一个blog post。您也可以查看answer以获取更多信息。希望它将为您清除一切。

如Barak所述,通过扩展CursorLoader类,可以在没有内容提供者的情况下实现AsyncTaskLoader<Cursor>。就是说,大多数教程和示例代码都使用ContentProvider,并且似乎Android团队也鼓励使用它。它也比实现您自己的类要简单得多。

就是说,如果您真的不想使用内容提供程序,那么Dianne Hackborn(Android框架开发人员之一,在此处也被称为“hackbod”)建议您编写自己的使用数据库类而不是内容的加载器提供者。最简单的方法是从兼容性库中获取CursorLoader类的源,并用对您自己的db helper类的查询替换提供程序查询。

关于java - Android:CursorLoader,LoaderManager,SQLite,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11017646/

10-12 02:35