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对象;
LinearLayout mLayout = (LinearLayout) findViewById(R.id.layout);
WebView mWebView = new WebView(getApplicationContext());
Line