适配器中异步任务的效率



我有一个包含ViewPager的HomeScreenActivity,它包含3个页面。现在我想通过异步任务下载一些内容,以显示在第1页。

代码流程:

HomeActivity -我在这里设置viewpager适配器。

HomeViewPagerAdapter

CustomAsyncTask

CustomAsyncTaskInterface -通知下载的内容。

从适配器调用AsyncTask是一个好方法吗?或者我应该从HomeActivity中做吗?

如果AsyncTask应该为适配器构建数据列表,那么它应该从包含适配器的Activity/Fragment中运行。你将在onPostExecute中设置或通知适配器。

如果AsyncTask是下载数据每个适配器项目,那么它应该是适配器类的一部分,在getView中被称为,你从onPostExecute更新getItem(position)元素。


例如,假设您有一个包含图像URL的数据列表,但是适配器只需要显示项目的标题,而不是立即显示图像。第一个获取所有项目的数据列表的AsyncTask进入Activity

你只需要显示图像时,你点击一个项目,或获取额外的细节有关的东西。在这种情况下,获取更多数据(特别是针对特定项)的次要AsyncTask位于适配器中。

我认为更好的方法是在AsyncTask的onPostExecute方法上设置适配器,因为在那里你会知道AsyncTask已经完成执行。

最新更新