今天写项目的时候有一个需求,就是每次进入到fragment这个页面都需要刷新一次数据。
我的页面是这样的。

当点击到档案的时候,就要刷新数据。或返回到这个页面时就会刷新。
直接上代码:
全局定义一个boolean 值:
private boolean isGetData = false;
然后重写fragment的onCreateAnimation()方法。
@Nullable
@Override
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
// 进入当前Fragment
if (enter && !isGetData) {
isGetData = true;
// 这里可以做网络请求或者需要的数据刷新操作 但不在这做 在onResume里
// GetData();
} else {
isGetData = false;
}
return super.onCreateAnimation(transit, enter, nextAnim);
}
@Override
public void onPause() {
super.onPause();
//跟随生命周期
isGetData = false;
}
@Override
public void onResume() {
if (!isGetData) {
// 这里可以做网络请求或者需要的数据刷新操作
GetData();
isGetData = true;
}
super.onResume();
}
在onResume方法添加了刷新的功能。但是我每次点击进入到这个fragment的时候都会出现两次请求。因为你生命周期进来之后,会直接走onResume这个方法,所以肯定会调用的,有些项目的需求是这样,根据自己项目而定。我的项目这个方法取消了。只添加前面的两个方法。能够正常使用。
网友评论