为什么Cursor.requery()标记为“已弃用”?

时间:2011-08-16 03:27:42

标签: android cursor android-loadermanager

Cursor.requery()是一种非常常见的方法,用于刷新ListView的内容。但为什么这种方法被标记为“已弃用”?我无法理解API文档中的原因。

Cursor.requery()API: http://developer.android.com/reference/android/database/Cursor.html#requery()

任何人都可以进一步解释原因吗?感谢:)

1 个答案:

答案 0 :(得分:3)

我相信它已经完成,因为引入了新的Loaders API来简化异步查询游标。

正如弃用说明所说

  

不要使用它。只需请求一个新光标,这样就可以异步执行此操作,并在新光标返回后更新列表视图。

这就是我们应该使用的。

更新

似乎它也可能与Activity.startManaginCursor

的弃用有关
  

startManagingCursor(光标c)   不推荐使用此方法。改为使用新的CursorLoader类和LoaderManager;这也可以通过Android兼容包在旧版平台上使用。此方法允许活动根据活动的生命周期为您管理给定的Cursor生命周期。也就是说,当活动停止时,它将自动调用给定Cursor上的deactivate(),稍后重新启动它将为您调用requery()。当活动被销毁时,所有托管游标将自动关闭。如果您的目标是HONEYCOMB或更高版本,请考虑改为使用LoaderManager,可通过getLoaderManager()获取