9

CursorAdapter有3个构造函数。让我们看看指南和参考。CursorAdapter有什么我可以使用的?

1)的CursorAdapter(上下文上下文中,光标C)

此构造已被弃用。不鼓励使用此选项,因为它导致在应用程序的UI 线程上执行光标查询,因此可能导致响应性较差,甚至导致应用程序不响应 响应错误。作为替代方法,使用LoaderManager和一个 CursorLoader。

2)的CursorAdapter(上下文上下文中,光标C,布尔autoRequery)

构造允许通过自动重新查询控制。 建议您使用 您不使用此,而是使用CursorAdapter(Context,Cursor,int)。

3)的CursorAdapter(上下文上下文中,光标C,整数标志)

推荐构造。

flags用于确定适配器行为的标志;可以是FLAG_AUTO_REQUERY和 FLAG_REGISTER_CONTENT_OBSERVER的任何组合。

FLAG_AUTO_REQUERY 此常数已被弃用。该选项不鼓励使用 ,因为它导致在 应用程序的UI线程上执行光标查询,因此可能导致响应性不佳,甚至导致应用程序无响应错误。作为替代方法,使用带有CursorLoader的LoaderManager。

FLAG_REGISTER_CONTENT_OBSERVER。 当使用带CursorLoader的CursorAdapter时,不需要此标志。

的CursorAdapter(上下文上下文中,光标C,INT标志)是推荐的构造,但可能的标记有2,一个已过时,使用具有CursorLoader一个CursorAdapter当其它不需要。如果我用一个CursorAdapter和一个CursorLoader,我必须使用这个构造函数并将零作为标志传递。在这种情况下,构造函数与#1相同吗?

回答

6

通过使用#1,它将适配器默认为自动重新查询。这与#3不同,因为您可以指定是否希望自动重新查询(根据文档,您不应该这样做)。因此,如果您通过#3构造函数0,则#1和#3不会相同。

1

CursorAdapter是一个抽象类,因此无法实例化。

另外,请记住,第三个构造函数只是API 11+。

+3

是的,我的应用程序有分钟版本API 7,但我使用兼容包 – crbin1

0

您需要使用LoaderManager和Loader进行迁移。

因为大多数情况下都可能会被弃用。所以最好使用带有LoaderManager和Loader的CursorLoader

您可以在下面的链接中找到示例项目,该项目获取任何手机中安装的应用程序列表。

https://github.com/alexjlockwood/AppListLoader.git

祝你好运..

相关问题