在WebView中加载新URL之前,断开已加载的网页(使用socket.io)

时间:2015-02-09 18:55:28

标签: android webview socket.io android-webview socket.io-1.0

WebView加载使用socket.io

的网页
WebView myWebView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.setWebViewClient(new WebViewClient());
myWebView.loadUrl(socket_io_page_url);

使用Cookie维护会话。当android logout操作项被激活时,必须清除cookie并加载新的url,如下面的代码所示

WebView myWebView = (WebView)findViewById(R.id.webView);
CookieManager.getInstance().removeAllCookie();
myWebView.loadUrl(new_url);

这样可行,但与前一个url(socket_io_page_url)的连接不会立即终止。由于WebView不支持Web套接字,因此webview使用长轮询,并且等待大约20秒来断开先前的URL。超时可以改变,但这将是一个带宽成本很高的操作。

此时无法切换到本机java编码。因此,断开先前的连接对应用程序非常重要。我试过了

myWebView.destroy()

System.gc()** after new url load,

webSettings.setJavaScriptEnabled(false); and setting back
webSettings.setJavaScriptEnabled(true);

他们都没有奏效。使用更清洁应用程序终止应用程序会立即断开套接字。有没有办法断开以前加载的页面。

0 个答案:

没有答案