我的片段中有几个WebView,每个都在iframe中显示一个youtube播放器,在播放这些视频时,我注意到暂停片段甚至活动都没有影响WebView,视频继续在后台播放。
我通过将这些WebView保存在列表中,并在其上应用片段生命周期来修复它:
@Override
public void onPause() {
super.onPause();
for (WebView wv : webviews)
wv.onPause();
}
@Override
public void onResume() {
super.onResume();
for (WebView wv : webviews)
wv.onResume();
}
@Override
public void onDestroy() {
super.onDestroy();
for (WebView wv : webviews)
wv.destroy();
webviews.clear();
}
现在它工作得很好,虽然我很好奇为什么会这样做?为什么WebViews会自行运行并且不会考虑它们的容器(Activity / Fragment)生命周期?