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

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

private boolean isFirstLoading = true;

/**
* 在Fragment可见的时候刷新数据
*/
@Override
public void onResume() {
    supre.onResume();
    
    if (!isFirstLoading) {
        sendGoogleAnalysis();
    }
    isFirstLoading = false;
}

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