AsyncTask是否总能提高性能?

时间:2016-10-17 19:59:04

标签: android android-asynctask

我有一个应用程序,在启动时,必须设置一个回收器视图,显然,一个适配器。我应该在发布时使用AsyncTask吗?它总能提高性能吗?什么时候建议不使用它?

1 个答案:

答案 0 :(得分:3)

Android的主(UI)线程是调用许多熟悉的活动和片段生命周期回调的线程。将应用程序在主线程上所做的工作量保持在最低限度非常重要,以保持用户界面尽可能的响应。

  

我应该在启动时使用AsyncTask吗?

这取决于。您的数据集大小是多少?数据是本地的还是服务器上的某个地方?您认为检索数据需要多长时间?您是否会在RecyclerView / Adapter的整个生命周期内收到更多数据?除了最简单的情况之外,在后台线程中放置加载适配器数据的代码可能更安全。 AsyncTask是实现此目的的一种方法。 AsyncTaskLoader是另一个为取消提供额外支持的方法。

  

它总能提高性能吗?

没有。但它应该为您的用户提供更好的UI体验。

  

什么时候建议不要使用它?

如前所述,如果您有一个硬编码的静态项目列表,您可能只需加载它们并将它们放入适配器即可。对于其他任何事情,我建议在后台线程上加载数据(使用上述类之一。)

希望这有帮助。