0
@Override 
    public void setUserVisibleHint(boolean isVisibleToUser) { 
     super.setUserVisibleHint(isVisibleToUser); 
     if (isVisibleToUser) { 
      new LoadGlobalNews().execute(); 
     } 

    } 

正在使用片段级以上的方法来执行异步任务,我的问题是,每次从刷卡片段而去,并返回异步任务是重新执行任何其他替代片段Viewpager进度对话框

+0

增量每当方法被称为计数。当计数为1时调用AsyncTask。 – Vinay

回答

1

使用ViewPager.setOffscreenPageLimit

From the docs

一套应保留在视图层次结构的 当前页面的两侧处于空闲状态的页数。超出此限制的页面将在需要时从适配器重新创建。

mYourViewPager.setOffscreenPageLimit(mYourPagerAdapter.getCount()); 

更新

private boolean mLoadedNews; 

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if (isVisibleToUser && !mLoadedNews) { 
     new LoadGlobalNews().execute(); 
     mLoadedNews = true; 
    } 
} 
+0

我使用'setUserVisibleHint(boolean isVisibleToUser)'的原因是因为其他片段的进度对话框在应用程序加载时弹出,所以我决定执行异步任务当片段可见时,这意味着,每个片段都是可见的异步任务将重新加载,我不想要的。任何方式,我可以防止 –

+0

@RuyongaDan我能想到的最简单的方法是在检查'isVisibleToUser'时添加一个额外的条件,我做了一个编辑演示。 – adneal

+0

这解决了我的主要问题,但创建了另一个,我的内容从第二个片段被加载到第一个片段中,并且这留下了空白,片段的内容不显示。任何想法为什么。 –