Android切换Fragment时视频依旧在播放,没有正常的停止。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/to_Baidu/article/details/74017549


最近开发Android应用,实现了用RadioGroup和ViewPager菜单导航栏的效果。但是在其中某个Fragment界面进行播放视频,切换到其他几个Fragment时,视频还在播放。

本以为在视频所在的Fragment中的某个生命周期中进行视频的pause()操作即可,但是将尝试了Fragment所有的声明周期函数,都无功而返,失败。


最后是通过懒加载的方式进行解决的:即用setUserVisibleHint回调函数解决setOffscreenPageLimit不能设置成不缓存页面的问题。有人说setUserVisibleHint才是fragment正真的onResume和onPause方法。


    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser){
            // load data here:fragment可见时执行加载数据或者进度条等
        }else {
            // fragment is no longer visible:不可见时不执行操作
            if (videoView != null){
                videoView.pause();
            }
            if (mediaController != null){
                mediaController.hide();
            }
        }
    }


注意:本博客写的较为垃圾,需要优化,最近有点忙,后期会花时间整理,敬请见谅。



猜你喜欢

转载自blog.csdn.net/to_Baidu/article/details/74017549