ViewPager+Fragment 去掉ViewPager预加载功能

项目中通过ViewPager+多Fragment实现多页面数据展示,项目测试中发现,多个Fragment获取无法获取到服务端返回的数据,通过查看log,发现是由于在同一秒中请求同一个接口多次,服务端对时间戳做出限制,在同一秒中不可对同意接口同时访问,否则服务端做出限制并返回错误code,通过同事指点:ViewPager有对数据进行预加载功能。通过查阅资料取消ViewPager预加载解决办法如下:

 BaseFragment.java

onActivityCreated方法:
@Override
public void onActivityCreated(Bundle bundle) {
   if (getUserVisibleHint()) {
      initData(bundle);
   }
   super.onActivityCreated(bundle);
}

方法是上一个Fragment加载数据,并且加载下一个Fragment未获取服务端数据的初始化View,所以在切换到下一个Fragment后,会看到异步加载网络数据的过程(先加载未设置数据view,后能获取到服务端数据),解决了同一个接口,在同一秒内访问的问题。

发布了40 篇原创文章 · 获赞 0 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/java9832/article/details/104716581
今日推荐