CursorAdapter有什么用?

crb*_*in1 9 android constructor android-loadermanager android-cursoradapter

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

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

不推荐使用此构造函数.不鼓励使用此选项,因为它会导致在应用程序的UI线程上执行Cursor查询,从而导致响应能力较差甚至应用程序无响应错误.或者,使用带有CursorLoader的LoaderManager.

2)CursorAdapter(Context context,Cursor c,boolean autoRequery)

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

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

推荐的构造函数.

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

FLAG_AUTO_REQUERY 不推荐使用此常量.不鼓励使用此选项,因为它会导致在应用程序的UI线程上执行Cursor查询,从而导致响应能力较差甚至应用程序无响应错误.或者,使用带有CursorLoader的LoaderManager.

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

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

dym*_*meh 6

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