9

CursorAdapter 有 3 个构造函数。让我们看看指南和参考。

1)CursorAdapter(上下文上下文,光标c)

此构造函数已弃用。不鼓励使用此选项,因为它会导致在应用程序的 UI 线程上执行游标查询,从而导致响应速度不佳甚至应用程序无响应错误。作为替代方案,将 LoaderManager 与 CursorLoader 一起使用。

2)CursorAdapter(上下文上下文,Cursor c,布尔自动重新查询)

允许控制自动重新查询的构造函数。建议您不要使用 this,而是使用 CursorAdapter(Context, Cursor, int)。

3)CursorAdapter(上下文上下文,光标c,int标志)

推荐的构造函数。

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

FLAG_AUTO_REQUERY 此常量已弃用。不鼓励使用此选项,因为它会导致在应用程序的 UI 线程上执行游标查询,从而导致响应速度不佳甚至应用程序无响应错误。作为替代方案,将 LoaderManager 与 CursorLoader 一起使用。

FLAG_REGISTER_CONTENT_OBSERVER。将 CursorAdapter 与 CursorLoader 一起使用时,不需要此标志。

CursorAdapter(Context context, Cursor c, int flags) 是推荐的构造函数,但可能的标志是 2,一个已弃用,另一个在使用带有 CursorLoader 的 CursorAdapter 时不需要。如果我将 CursorAdapter 与 CursorLoader 一起使用,我必须使用此构造函数并将零作为标志传递?在这种情况下,构造函数是否与 #1 相同?

4

3 回答 3

6

通过使用#1,它默认适配器为自动重新查询。这与 #3 不同,因为您可以指定是否要自动重新查询(根据文档,您不应该这样做)。所以,不,如果你传递 #3 构造函数 0,#1 和 #3 就不一样了。

于 2011-11-20T22:26:35.697 回答
1

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

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

于 2011-11-20T22:29:03.363 回答
0

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

因为很可能所有这些都会被弃用。所以最好将 CursorLoader 与 LoaderManager 和 Loader 一起使用

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

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

祝你好运..

于 2013-10-25T12:46:05.580 回答