在我們的應用中豁陆,少不了一些H5頁面柑爸,相應的就會有很多與原生的交互,今天遇到一個坑盒音,就是在我的橋接類中JSInterface的方法中表鳍,我偶然發(fā)現(xiàn),含有@JavascriptInterface標識的方法祥诽,實際上方法不是運行在主線程进胯,而是一個JSBridge的線程中,這時如果有相應的UI操作原押,一定要記住胁镐,這里需要切換到主線程,否則可能引發(fā)一些不可預期的異常诸衔。這期只是一個常識性的東西盯漂,但是也是最近才發(fā)現(xiàn)這個問題,所以在此簡單記錄笨农。
@JavascriptInterface
public void receiveCoupon(){//js調(diào)用Activity領取優(yōu)惠券接口
? ? Log.i(TAG, "receiveCoupon: "+Thread.currentThread().getName());
? ? if (onHandleJsMethodListener!=null){
activity.runOnUiThread(new Runnable() {
@Override
? ? ? ? ? ? public void run() {
onHandleJsMethodListener.onReceiveCoupon();
? ? ? ? ? ? }
});
? ? }
}