我发现了两种不同的实现方法AsyncQueryHandler
:
- stackOverFlow 上的一个
- 第二个在这个博客上。
在第一种方法中,我们没有从子类化,AsyncQueryHandler
而在第二种方法中,我们手动关闭cursor
.
我想知道
不AsyncQueryHandler
处理cursor
?或者我们必须手动关闭它(如第二种方法中所做的那样)?
我发现了两种不同的实现方法AsyncQueryHandler
:
在第一种方法中,我们没有从子类化,AsyncQueryHandler
而在第二种方法中,我们手动关闭cursor
.
我想知道
不AsyncQueryHandler
处理cursor
?或者我们必须手动关闭它(如第二种方法中所做的那样)?
AsyncQueryHandler
, as seen in the source, does not handle any returned Cursor
that is returned in onQueryComplete
. Note that any of the other ContentProvider
methods (insert, update, delete) do not return a Cursor
and are therefore much easier to understand.
Generally, if you are going to query a ContentProvider
and use the resulting data (to say, fill a ListView
), you would want to use Loaders along with a CursorLoader. These classes are available in the support library and provide a much more robust framework (including automatically reloading data if the underlying ContentProvider
data changes) for managing queries.