Android 与H5交互的线程切换问题

在我们的应用中,少不了一些H5页面,相应的就会有很多与原生的交互,今天遇到一个坑,就是在我的桥接类中JSInterface的方法中,我偶然发现,含有@JavascriptInterface标识的方法,实际上方法不是运行在主线程,而是一个JSBridge的线程中,这时如果有相应的UI操作,一定要记住,这里需要切换到主线程,否则可能引发一些不可预期的异常。这期只是一个常识性的东西,但是也是最近才发现这个问题,所以在此简单记录。

@JavascriptInterface

public void receiveCoupon(){//js调用Activity领取优惠券接口

    Log.i(TAG, "receiveCoupon: "+Thread.currentThread().getName());

    if (onHandleJsMethodListener!=null){

activity.runOnUiThread(new Runnable() {

@Override

            public void run() {

onHandleJsMethodListener.onReceiveCoupon();

            }

});

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容