4

谁能告诉我 AsyncTaskLoader 和 AsyncQueryHandler 之间的区别?

我想在我的应用程序中使用 AsynTaskLoader.. 我的应用程序中现有的一个是 AsyncQueryHandler..

我认为 AsyncTaskLoader 是 AsyncQueryHandler 的替代品是对的吗?

纠正我如果我错了..我对android很陌生。

4

2 回答 2

7

如果您阅读文档:

AsyncQueryHandler

一个帮助类,可帮助更轻松地处理异步 ContentResolver 查询。

AsyncTaskLoader

提供 AsyncTask 来完成工作的抽象加载器。有关详细信息,请参阅 Loader 和 LoaderManager。

所以他们是非常不同的。AsyncQueryHandler用于异步查询/插入到 aContentResolver中,AsyncTaskLoader它是新Loader机制(在 API 级别 11 中引入)的实现,它对AsyncTask任何类型的后台处理(HTTP、SQL 等)使用执行操作。

你也应该看看CursorLoader,也许这是你需要的。

我想说,如果你只是想从 a 中读取,ContentResolver你应该使用 a CursorLoader,但如果你想在其中插入、删除等ContentResolver,也许最好使用AsyncQueryHandler.

于 2013-10-29T12:28:40.270 回答
1

CursorLoader是 的子类AsyncTaskLoader。而 LoaderManager 和 CursorLoader 仅提供了一种访问 ContentResolvers 上异步调用 query() 操作结果的方法。其他 ContentResolver 操作仍然是同步的。

但是,AsyncQueryHandler异步调用所有 ContentResolver 调用。不仅仅是查询,还有插入、删除、更新。

于 2016-02-15T15:48:28.477 回答