因为是工作项目,暂不方便在互联网上公开,这里详细的说一下细节。

场景

情况是这样子的,主界面下面4个Tab按钮,上面一个Framelayout包含了一个Fragment,这个Fragment又通过ViewPage包含了好几个Fragment

图片可能是这样子的:

多层Fragment嵌套,Fragment生命周期的监听

上面是一张简图,在首页中有viewpage,viewpage又有Fragment(热门,视频等)

这里的情况是我视频Fragment的时候进行播放视频,当我切换到热门或者是c、d、e这些Fragment的时候,视频Fragment并没有走生命周期方法,比如一些OnDestroy,onResume、onPause这些常用的。

因为视频播放需要用到Fragment的生命周期来进行资源的释放,比如在Fragment不可见的时候,停止视频的播放。

在网上搜索各种资料,在Android Studio中各种生命周期的log日志打印,最后找到了一个比较实用的方法:

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        Log.e(TAG, "setUserVisibleHint: "+isVisibleToUser );
        super.setUserVisibleHint(isVisibleToUser);
    }

这个方法是只要不在当前Fragment,都会被调用的方法,我们就可以在这里进行视频播放资源的释放了。

--------------------------------------- 下面是广告 ------------------------------------------------

个人微信:hll643435675(备注:博客)

更多资源请访问:

https://blog.csdn.net/xudailong_blog/article/details/78762262

慕课****:https://blog.csdn.net/xudailong_blog/article/details/82909611

--------------------------------------- 上面是广告 -----------------------------------

相关文章:

  • 2022-12-23
  • 2021-07-30
猜你喜欢
  • 2021-05-29
  • 2021-05-24
  • 2021-11-09
相关资源
相似解决方案