Android中使用webview时出现内存泄露如何解决

Android中使用webview时出现内存泄露如何解决,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了石河子免费建站欢迎大家使用!

1.避免在xml直接写webview控件,这样会引用activity,所以在xml写一个LinearLayout,然后 linearLayout.addView(new MyWebview(getApplicationContext()));

这样动态生成webview就能避免内存泄漏,可是这样会导致部分机型的webview里面点击超链接会出现异常,程序崩溃,暂时的解决办法是禁止点击,需要重写webview,

public class MyWebview extends WebView {
  public MyWebview(Context context) {
    super(context);
  }
 
  public MyWebview(Context context, AttributeSet attrs) {
    super(context, attrs);
  }
 
  public MyWebview(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
  }
 
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    return false;
  }
}

这样能避免出现程序崩溃。

2.activity关闭时需要手动释放webview内存

@Override
  protected void onDestroy() {
    super.onDestroy();
    if(webview_projectinfo != null){
      webview_projectinfo.removeAllViews();
      webview_projectinfo.destroy();
      webview_projectinfo = null;
      ll_webview.removeAllViews();
      ll_webview = null;
    }
}

关于Android中使用webview时出现内存泄露如何解决问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


名称栏目:Android中使用webview时出现内存泄露如何解决
文章URL:http://ybzwz.com/article/jepeig.html