CursorAdapter有什么用?

时间:2011-11-20 22:10:32

标签: android constructor android-cursoradapter android-loadermanager

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

  

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

     

不推荐使用此构造函数。不建议使用此选项,因为它会导致在应用程序的UI上执行Cursor查询   线程因此可能导致响应能力差甚至应用程序不   回应错误。作为替代方案,使用带有的LoaderManager   CursorLoader。

     

2)CursorAdapter(上下文上下文,Cursor c,boolean autoRequery)

     

允许控制自动重新查询的构造函数。 推荐   你不是使用这个,而是使用CursorAdapter(Context,Cursor,int)。

     

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

     

推荐的构造函数。

     

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

     

FLAG_AUTO_REQUERY 不推荐使用此常量。这个选项是   气馁,因为它会导致Cursor查询被执行   应用程序的UI线程,因此可能导致响应能力差甚至   应用程序无响应错误。作为替代方案,请使用   带有CursorLoader的LoaderManager。

     

FLAG_REGISTER_CONTENT_OBSERVER。 使用a时不需要此标志   带有CursorLoader的CursorAdapter。

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

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

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

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

祝你好运..