android 盒子webview卡死,Android WebView常见的坑和解决方案

一、WebView常见的一些坑

1、内存泄漏

由于WebView是依附于Activity的,Activity的生命周期和WebView启动的线程的生命周期是不一致的,这会导致WebView一直持有对这个Activity的引用而无法释放,解决方案如下三种:

解决方案:

(1)独立进程,简单暴力,不过可能涉及到进程间通信。使webview产生了oom崩溃等问题也不会影响到主程序。

方法:在androidmanifest.xml的activity标签里加上android:process=”packagename.web”就可以了

(2)WebView创建

方法:不在xml中定义 Webview,而是在需要的时候在Activity中创建,对传入WebView的Context使用使用ApplicationContext而不是ActivityContext。因为这样做可以在onDestory()里销毁掉webview及时清理内存;创建webview需要使用ApplicationContext而不是Activity的context,销毁时不再占有Activity对象;

(3)WebView销毁

方法:在 Activity销毁WebView的时,需要在onDestroy()中:先让WebView加载null内容,再移除WebView,然后再将WebView.destroy(),最后WebView置空。

2、WebViewClient.onPageFinished()问题

无法确定当WebView调用这个方法的时候,网页内容是否真的加载完毕了。当前正在加载的网页产生跳转的时候这个方法可能会被多次调用,多数开发者

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值