Fragment二次进入刷新

对于Activity来说我们想要去做用户Back后的逻辑很容易,直接从生命周期的onRestart()中做处理就好,例如用户从ActB返回到AtcA中,我们想要把统计分析数据上传一份到第三方统计平台中。但是对于Fragment来说,它的生命周期其实是依附于外层的Activity的,这样对于上面这个简单的需求就需要换一个思路处理。

假设我们现在有1个Activity和2个Fragment,当用户从ActivityA->FragmentA->FragmentB时,这时,我如果想获得这三个View的打开的状态的话,想一想我们可以怎么做。Activity简单,放在onCreate()里面就可以。返回的话就需要对于中间这个FragmentA做一下判断,确保它的第二次打开不会上传上去。因此,我们可以设置一个变量来记录当前Fragment初始化与否。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
private boolean isFirstLoading = true;

/**
* 在Fragment可见的时候刷新数据
*/
@Override
public void onResume() {
supre.onResume();

if (!isFirstLoading) {
sendGoogleAnalysis();
}
isFirstLoading = false;
}

这样就可以很容易的解决这个小问题。

-------------The End-------------
请我喝一杯啤酒~