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


最近开发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();
            }
        }
    }


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



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值