Android Fragment真正的onResume和onPause


如果你的Fragment切换是replace方法,那就可以无视这个文章了,如果是显示隐藏,可以参考下


有的时候我们需要在当前fragment显示的时候重新加载数据,按照Activity的思路是在onResume()方法里面实现,但是Fragment虽然有这个方法,但是我们打印log会发现只是在Fragment加载的时候走这个方法了,但是显示隐藏都不会走这个方法,所以,我们需要寻找真正的onResume()方法

Fragment有两种情况,单独Fragment和与ViewPager结合使用,方法也不一样

单独Fragment使用时:

@Override
   public void onHiddenChanged(boolean hidden) {
       super.onHiddenChanged(hidden);

       if (hidden) {
           //不在最前端显示
           LogUtils.e("--------Fragment 不在最前端显示");
       } else {
           //重新显示到最前端
           LogUtils.e("--------Fragment 重新显示到最前端" );
       }

   }


与ViewPager结合使用时:

@Override
   public void setUserVisibleHint(boolean isVisibleToUser) {
       super.setUserVisibleHint(isVisibleToUser);

       if (isVisibleToUser) {
           //相当于Fragment的onResume
          LogUtils.e("--------Fragment 重新显示到最前端" );
       } else {
           //相当于Fragment的onPause
          LogUtils.e("--------Fragment 不在最前端显示" );
       }
   }

猜你喜欢

转载自blog.csdn.net/fan7983377/article/details/72957064