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   欢迎转载,转载请注明作者及出处。
  • 相关阅读:
    python 操作 mysql 数据库 datetime 属性字段为 0000-00-00 00:00:00 的问题
    git 学习笔记
    SB Admin 2 学习笔记1
    docker容器与容器云读书笔记1
    urlencode遇到中文编码问题
    flask_sqlalchemy 乱码问题
    centos6u3 安装 celery 总结
    flask_sqlalchemy 命名遇到的一个小坑
    使用 bash 创建定时任务
    tornado 异步调用系统命令和非阻塞线程池
  • 原文地址:https://www.cnblogs.com/wintys/p/3797656.html
Copyright © 2011-2022 走看看