我的活动中有一个webview,我需要在加载最终网址后关闭它。
我在自定义客户端中尝试destroy()
但是不允许,finish()
关闭了整个应用,后退键也关闭了应用。有没有办法只删除webview并返回其余的活动。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
WebView webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new MyWebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(myUrl);
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.matches(PATTERN)) {
Matcher matcher = Pattern.compile(PATTERN).matcher(url);
result = matcher.matches() ? matcher.group(1) : null;
// webview.destroy(); //doesn't work as destroy cannot be called from here
return false;
}
view.loadUrl(url);
return true;
}
}
答案 0 :(得分:2)
您可以通过以下方式从父级删除webView:
ViewGroup vg = (ViewGroup)webView.getParent();
if(vg != null)
vg.removeView(webView);
或者只尝试使用webView.setVisibility(View.GONE);