Android为WebView创建一个新进程,告别卡顿

1.WebView不用scrollView

2.WebView不应该直接写在xml里

3.为WebView创建一个新进程,不需要考虑内存泄漏,直接杀掉进程


我拿自己的app举个例子,名字叫StoryDetailActivity,一开始用WebView非常之卡


先在注册文件中把这个Activity声明到另外一个进程中,

<activity android:name=".detail.StoryDetailActivity"
    android:process=":h5"
    android:screenOrientation="portrait"
    android:configChanges="orientation|screenSize|keyboardHidden"/>
注意一定要是H5进程哦


在activity的onDestory中关闭虚拟机

@Override
protected void onDestroy() {
    super.onDestroy();
    System.exit(0);//这里杀掉了h5进程,不会杀掉我们app的进程
}

webview的写法

xml中

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
代码中,new了一个add进去

mWv = new WebView(getActivity());
mWv.getSettings().setDefaultTextEncodingName("utf-8");
mLl.addView(mWv);

效果图,现在完全不卡了

Android为WebView创建一个新进程,告别卡顿


最后有两个必须要注意的问题:

1.你如果想要和这个activity进行交互,必须会进程间通信的技能

2.此外,这个activity中的报错信息你讲接受不到,因为他跑在另外一个进程里,所以你必须在注册文件中把指定进程的信息去掉才能看见它的调试信息