Fragment回调了onResume方法却并没有进去前台可见

Fragment回调了onResume方法却并没有进去前台可见,所以不能仅仅依靠onResume判断是不是fragment是否可见

fragment有个方法专门判断fragment是否可见

/**  * @return The current value of the user-visible hint on this fragment.  * @see #setUserVisibleHint(boolean)  */ public boolean getUserVisibleHint() {
    return mUserVisibleHint;
}
因此onResume可以这么写

@Override
    public void onResume() {
        super.onResume();

        Log.v(TAG, "onResume");
        if (!getUserVisibleHint()) {
            return;
        }
 ...  }

如果确定可当前fragment前台可见,那么可以手动调用onResume

@Override
public void setUserVisibleHint(boolean visible) {
    super.setUserVisibleHint(visible);
    Log.v(TAG, "setUserVisibleHint");
    if (visible && isResumed()) {
        //Only manually call onResume if fragment is already visible  //Otherwise allow natural fragment lifecycle to call onResume  onResume();
    }
}

你可能感兴趣的:(Fragment回调了onResume方法却并没有进去前台可见)