【发布时间】:2015-05-20 08:38:07
【问题描述】:
我知道这个问题已经在不同的网站上提出过(例如 here 和 there,但我很难找到针对我的特定用例的解决方案。
事情是这样的:我有 3 个标签(每个标签扩展 Fragment),它们由 ActionBarActivity(称为 Home)托管。 Home 包含一个 ViewPager,它扩展了一个 FragmentStatePagerAdapter(这是创建不同选项卡的地方)。
当我滑动到最后一个选项卡(第三个)时,我使用 setUserVisibleHint() 使用 AsyncTask<> 从服务器加载一些数据:
public class TabOperations extends Fragment {
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisible())
loadUserRequestByDate(); // Launch Asynctask<> method.
}
}
从第一个选项卡滑动到最后一个选项卡时效果很好。但是,当我滑回之前的选项卡时(所以,第二个),setUserVisibleHint()(所以,loadUserRequestByDate())中的方法被触发。
如何避免这种行为?
【问题讨论】:
标签: android android-fragments android-viewpager android-fragmentactivity fragmentstatepageradapter