安卓開發騰訊X5遇到IllegalArgumentException解決方法
阿新 • • 發佈:2019-02-10
在我的開發中突然遇到了一個問題如下圖,查了好久才發現是問題的來源是WebView中包含一個ZoomButtonsController,當使用web.getSettings().setBuiltInZoomControls(true);啟用後,使用者一旦觸控式螢幕幕,就會出現縮放控制圖示。如果圖示自動消失前退出當前Activity的話,就會報上面的這些異常。
經過上網查詢資料,結合自己的最後終於找到了解決方法那就是在就是退出activist時ondestroy()處理不對,原來是直接 webView.destroy();後來的解決方法是
@override
protected void onDestroy() {
Handler handler = new MyHandler(this);
handler.sendEmptyMessage(0xfff);
super.onDestroy();
}
class MyHandler extends Handler {
SoftReference<Activity> softActivity;
public MyHandler(Activity activity) {
softActivity = new SoftReference<>(activity);
}
@Override
public void handleMessage(Message msg) {
super .handleMessage(msg);
if (mWebView != null) {
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.setVisibility(View.GONE);
mWebView.removeAllViews();
mWebView.destroy();
mWebView = null;
}
}
}