创建:WebView创建不在布局文件中定义,在java代码中定义,add进布局容器
问题
1:白屏和闪屏,原因:硬件加速导致。
WebView硬件加速导致页面渲染闪烁
4.0以上的系统我们开启硬件加速后,WebView渲染页面更加快速,拖动也更加顺滑。但有个副作用就是,当WebView视图被整体遮住一块,然后突然恢复时(比如使用SlideMenu将WebView从侧边滑出来时),这个过渡期会出现白块同时界面闪烁。解决这个问题的方法是在过渡期前将WebView的硬件加速临时关闭,过渡期后再开启,代码如下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
2:加载缓慢问题
解决方法:预加载。单开或多开
单开:只存在一个WebView对象,Activity启动模式可以设置为singleTop或singleTask
多开:每次加载URL,都重开一个WebView,act启动模式为standand
3:硬加速(android:hardwareAccelerated="true")部分机型不兼容,可以采用软解,但是渲染效率低。此时可以用腾讯X5WebView代替系统浏览器
案例:HTC ONE上在WebView未加载完全时,退出Activity页面,再次进入,WebView加载不完全。此后所有WebView加载都将不完全。
4:WebView退到后台,仍播放音视频
@Override
protected void onPause() {
webView.onPause();
webView.pauseTimers();
super.onPause();
}
@Override
protected void onResume() {
webView.onResume();
webView.resumeTimers();
super.onResume();
}
5:WebView的正确退出方式
https://www.jianshu.com/p/3e8f7dbb0dc7
网友评论