1.新开进程
在WebView所在的activity新开辟一个进程,在onDestroy中杀死WebView所在的进程
@Override
public void onDestroy() {
android.os.Process.killProcess(android.os.Process.myPid());
super.onDestroy();
}
清单文件
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:process="com.process.p1"
android:theme="@style/AppTheme" >
<activity
android:name="com.A"
android:process="com.process.p1"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<---WebView所在的activity->
<activity
android:name="com.B"
android:process="com.process.p2" //为WebView所在的activity单独开一个进程
android:label="@string/app_name" >
</activity>
</application>
2.及时移除webView
@Override
protected void onDestroy() {
if( mWebView!=null) {
ViewParent parent = mWebView.getParent();
if (parent != null) {
((ViewGroup) parent).removeView(mWebView);
}
mWebView.stopLoading();
// 退出时调用此方法,移除绑定的服务,否则某些特定系统会报错
mWebView.getSettings().setJavaScriptEnabled(false);
mWebView.clearHistory();
mWebView.clearView();
mWebView.removeAllViews();
mWebView.destroy();
}
super.onDestroy();
}
网友评论