fragment取消预加载

public abstract class BaseFragment extends Fragment {


protected boolean isViewInitiated;
protected boolean isVisiableToUser;
protected boolean isDataInitiated;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    LogUtils.sf(getClass().getSimpleName() + "onActivityCreated");
    isViewInitiated = true;
    prepareFetchData();
}


@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    LogUtils.sf(getClass().getSimpleName() + "setVisiableToUser" + "==" + isVisibleToUser);
    this.isVisiableToUser = isVisibleToUser;
    prepareFetchData();
}


public abstract void fetchData();

public boolean prepareFetchData() {
    boolean b = prepareFetchData(false);
    return b;
}

/**
 * 是否预加载
 *
 * @param forceUpdate
 * @return
 */
public boolean prepareFetchData(boolean forceUpdate) {
    if (isVisiableToUser && isViewInitiated && (!isDataInitiated || forceUpdate)) {
        fetchData();
        isDataInitiated = true;
        return true;
    }
    return false;
}


    }

###接下来在子类实现

  /**
 * 主动加载数据
 */
@Override
public void fetchData() {
   //加载网络数据
}