首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AsyncTaskLoader vs AsyncTask

AsyncTaskLoader vs AsyncTask
EN

Stack Overflow用户
提问于 2011-08-19 19:20:27
回答 4查看 51.1K关注 0票数 129

由于Honeycombv4 Compatibility Library,所以可以使用AsyncTaskLoader。据我所知,AsyncTaskLoader可以通过屏幕翻转等配置变化存活下来。

是否建议使用AsyncTaskLoader而不是AsyncTaskLoaderManager也参与其中了吗?

但是我还没有找到任何关于如何正确使用AsyncTaskLoader的好例子。这些文档也没有提供任何示例。有谁能提供一些好的例子。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-19 22:10:51

您可以查看兼容性库的源代码以获取更多信息。FragmentActivity的作用是:

通过在Activity中调用LoaderManager's

  • make时使用正确的加载器保存实例,
  • 保存initLoader()列表以确保翻转电话(或发生其他配置更改)时不会销毁这些实例

您需要使用LoaderManager与加载器进行交互,并提供所需的回调来创建加载器并使用它们返回的数据填充视图。

一般来说,这应该比自己管理AsyncTask要容易得多。然而,AsyncTaskLoader并没有很好的文档记录,所以你应该研究文档中的例子和/或模仿CursorLoader来建模。

票数 51
EN

Stack Overflow用户

发布于 2017-01-13 17:37:27

当比较AsyncTaskLoaderAsyncTask时,正如您可能知道的那样,当您旋转设备屏幕时,它可能会破坏并重新创建您的活动,以明确在网络交易进行时让图像旋转您的设备:

AsyncTask将再次作为后台线程重新执行,以前的后台线程处理是冗余的和僵尸的。

AsyncTaskLoader将根据以前在加载程序管理器中注册的加载程序ID进行重用,因此避免重新执行网络事务。

总之,AsyncTaskLoader可防止后台线程重复,并消除僵尸活动的重复。

票数 50
EN

Stack Overflow用户

发布于 2016-09-27 21:47:24

AsyncTaskLoader执行与AsyncTask相同的功能,但更好一些。它可以更容易地处理活动配置更改,并且它在片段和活动的生命周期内运行。好的一点是,在使用AsyncTask的任何情况下,都可以使用AsyncTaskLoader。任何时候需要将数据加载到内存中以供活动/片段处理时,AsyncTaskLoader可以更好地完成这项工作。

不过,使用AsyncTasks有几个问题:

  • 配置更改可能会使事情变得混乱
  • 暂停活动不会暂停AsyncTask
  • 大量的样板代码(这意味着更多可能的错误)

AsyncTaskLoader doc

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7120813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档