当前位置: 首页 > 面试题库 >

Android:CursorLoader,LoaderManager,SQLite

郤浩慨
2023-03-14
问题内容

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


问题答案:

我已经写了 一篇 关于这个主题的
博客文章
。您也可以查看此
答案 以获取更多信息。希望它将为您清除一切。

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

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



 类似资料:
  • 问题内容: 我正在开发针对API级别8(2.2,Froyo)的Android应用程序。我正在使用a ,这很简单,并且正在用于填写列表视图,但是我在SimpleCursorAdapter的文档中注意到,无标记构造函数已弃用,并带有以下注释: 不推荐使用此构造方法。不建议使用此选项,因为它会导致在应用程序的UI线程上执行游标查询,从而可能导致响应能力差,甚至导致应用程序无响应错误。或者,将Loader

  • 本文向大家介绍详细讲解Android中使用LoaderManager加载数据的方法,包括了详细讲解Android中使用LoaderManager加载数据的方法的使用技巧和注意事项,需要的朋友参考一下 Android的设计之中,任何耗时的操作都不能放在UI主线程之中。所以类似于网络操作等等耗时的操作都需要使用异步的实现。而在ContentProvider之中,也有可能存在耗时的操作(当查询的数据量很

  • 谁能告诉我为什么我会得到这个例外,我该如何解决这个问题? 谢谢!

  • 问题内容: 我修改了一个表格,以这种方式向其中添加状态列 但是,对于创建的任何新ITEM,SQLite似乎都不会将N添加到该列中。语法是否错误,或者SQLite及其对默认值的支持是否存在任何问题。 我正在使用SQLite 3.6.22 问题答案: 对我来说看上去很好。 这是文档。 转储您的模式,并 在调用ALTER TABLE之后但在INSERT之前 验证 表结构是否存在。如果它在事务中,请 确保

  • 问题内容: 如何在Android上的SQLite数据库中获取布尔字段的值? 我通常使用,等获取字段的值,但似乎没有方法。 问题答案: 它是:

  • 问题内容: 我在这个应用程序中有一个应该创建和使用数据库的类,但是Eclipse告诉我sqlite方法是未定义的。 似乎是一个上下文问题,但我不知道如何解决,我是否要扩展其他类而不是Activity? 谢谢你的帮助! 问题答案: 我建议您使用SQLiteOpenHelper。 如果数据库不可用,它会自动创建一个数据库。 示例代码: 像这样使用它: 我认为这很容易,您无需担心数据库是否已存在。 希望