zoukankan      html  css  js  c++  java
  • [原][Android]All WebView methods must be called on the same thread.


    问题

        webView调用JS出错。

        class TestJS {
            ......
            public TestJS(){
            }
            
            public void save(String data){            
                webView.loadUrl("javascript: alert(" + data +")");
            }
            ......
        }

        W/WebView(2088): java.lang.Throwable: A WebView method was called on thread 'JavaBridge'. All WebView methods must be called on the same thread. (Expected Looper Looper (main, tid 1) {b3dbcb18} called on Looper (JavaBridge, tid 120) {b44a1af8}, FYI main Looper is Looper (main, tid 1) {b3dbcb18})
        W/WebView(2088):     at android.webkit.WebView.checkThread(WebView.java:2063)
        W/WebView(2088):     at android.webkit.WebView.loadUrl(WebView.java:794)
        W/WebView(2088):     at com.ue.oa.activity.XFormActivity.alert(XFormActivity.java:180)
        W/WebView(2088):     at com.ue.oa.activity.XFormActivity$FormActions.save(XFormActivity.java:193)
        W/WebView(2088):     at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
        W/WebView(2088):     at com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27)
        W/WebView(2088):     at android.os.Handler.dispatchMessage(Handler.java:102)
        W/WebView(2088):     at android.os.Looper.loop(Looper.java:136)
        W/WebView(2088):     at android.os.HandlerThread.run(HandlerThread.java:61)

    解决


    将save方法修改为:
        public void save(String data){            
            webView.post(new Runnable() {
                @Override
                public void run() {
                    webView.loadUrl("javascript: alert(" + data +")");
                }
            });
        }

    【Reference】
    [1] 《android webview.loadUrl won't load another webpage》 : http://stackoverflow.com/questions/21955593/android-webview-loadurl-wont-load-another-webpage
    作者:wintys (wintys@gmail.com)  出处:http://wintys.cnblogs.com   欢迎转载,转载请注明作者及出处。
  • 相关阅读:
    nginx通过多级代理获得真实用户IP的方法
    装饰器
    base64文件隐写脚本
    椭圆曲线加密
    mysql创建账号及管理权限
    Linux 中指定启动 tomcat 的 jdk 版本
    Linux 下创建 sftp 用户并限定目录
    linux 服务器脚本采集数据中文无法执行错误
    poi 读取使用 Strict Open XML 保存的 excel 文档
    win7 配置Windows Update 失败,还原更改,无法进入系统
  • 原文地址:https://www.cnblogs.com/wintys/p/3797656.html
Copyright © 2011-2022 走看看