viewpager中的Android异步任务

标签 android android-fragments android-asynctask android-viewpager

我正在使用 FragmentStatePagerAdapter 来设置 ViewPager 内容。在适配器的 getItem() 方法中,我调用了一个 fragment 。我想在每个 View 寻呼机 fragment 上从服务器动态显示产品图像和名称。我在 fragment 的 OnCreateView() 中调用异步任务。但是相邻产品的异步任务也会被调用。我想知道哪种方法最好?

我应该提前执行异步任务并设置 View 寻呼机的适配器吗?如果是这样,我有 1000 种产品,设置适配器将花费大量时间。

或者我应该在每个页面加载后执行异步任务吗?但是在这里,每次我来到该页面时,它都会不断从服务器加载数据。我希望数据仅在我第一次访问该页面时加载,在下一次滑动时,它应该简单地显示而不是再次从服务器获取数据。

我也希望这是一个无限 View 寻呼机适配器,这怎么可能?

提前致谢:)

最佳答案

... I want the data to be loaded only first time I visit the page, on next swipe, it should display simply instead of fetchng from server again.

AsyncTask 调用从 OnCreateView 移至 setUserVisibleHint : 将在 fragment 对用户可见时执行:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);

    if (isVisibleToUser) {

        // launch your AsyncTask here, if the task has not been executed yet
        if(aTask.getStatus().equals(AsyncTask.Status.PENDING)) {
            aTask.execute();
        }
    }
}

... I would also like this to be as an infinite view pager adapter, how is this possible ?

这已经被回答了,即:

  1. ViewPager as a circular queue / wrapping
  2. how to create circular viewpager?

关于viewpager中的Android异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23990047/

相关文章:

android - UIL,Picasso - 适配器中的图像总是在停止滚动时重新加载

android - ScrollView 内的 ViewPager 不工作

android - 我应该如何在 Google Analytics v4 中跟踪 Fragments?

android - 如何使用loopj HTTP库等待两个异步HTTP请求完成

使用 AsyncTask 进行 REST 调用的 Android 设计模式

使用eclipse的Android multidex支持库

android - 将项目集成为一个包的有效方法?

java - 在 Android 中持续更新 UI 线程的最有效方法

android - FileObserver 不起作用

android - Facebook 登录按钮阻止整个 Android Activity