此问题出现的原因是:在js调用后的Java回调线程并不是主线程;
解决上述的异常,将webview操作放在主线程中即可:
webView.post(new Runnable() { @Override public void run() { webView.loadUrl(YOUR_URL). } });
引申:
JavaScript和Java的交互是在子线程上面进行的
因为JavaScript和Java交互是在子线程上面进行的,所以如果需要UI方面的修改操作,或者执行其他的操作,必须要考虑到线程安全的问题。
本文介绍了在JavaScript调用Java方法时遇到的非主线程问题及其解决方案。通过使用WebView的post方法确保UI更新在主线程中执行,避免了因跨线程导致的异常。此外还探讨了JavaScript与Java交互时的线程安全问题。
617

被折叠的 条评论
为什么被折叠?



