creator的Android工程接第三方SDK Java与JS互调问题 setTimeout函数不执行

  • Creator 版本: 2.4.6
  • 目标平台: Android

问题描述:
用2.4.6creator构建的Android项目,接入合作商的充值SDK,在充值成功的回调函数中,使用Cocos2dxJavascriptJavaBridge.evalString调用JS层代码,能回调成功,但是js层中代码中setTimeout函数未执行,打印了Android的线程 是在主线程中,回调的函数是在runOnGLThread()中的。

点击充值按钮的时候,SDK创建了一份自己的UI界面,上面有支付跟微信充值按钮。

Java调用JS的代码如下:

instance.context.runOnGLThread(new Runnable() {
            @Override
            public void run() {
                Cocos2dxJavascriptJavaBridge.evalString("window.hlAppSdkApi." + jsMethod);
            }
        });

JS中的代码如下:

// 调用上面的pay支付接口后,支付结果会通过该接口返回
    public onHLAppPayResult(payResult: string) {
        let ret = JSON.parse(payResult) as HLAppPayResult;
        console.log("hlAppSDK onHLAppPayResult called in HLApp.ts." + payResult);
        console.log(`this.payResultCallback : `, this.payResultCallback);
        if (this.payResultCallback) {
            console.log('---00000000000000aaaaaa');
            
            setTimeout(() => {
                console.log('---bbbbbbbbbddddddddddd');
                let cb = this.payResultCallback;
                this.payResultCallback = null;
                cb(ret);
            }, 500);
        }
    }

Log如下:

2023-02-13 13:52:18.825 2679-2679/? D/JS-HLAPPSDKLOG: payOnFinish ; i : -1 , s : 用户取消支付
2023-02-13 13:52:18.825 2679-2679/? D/JS-HLAPPSDKLOG: 在主线程中 主线程
2023-02-13 13:52:18.827 2679-2708/? D/jswrapper: JS: hlAppSDK onHLAppPayResult called in HLApp.ts.{"code":-1}
2023-02-13 13:52:18.827 2679-2708/? D/jswrapper: JS: this.payResultCallback :  function(e) {
    console.log("[HLAppSDKPay] 111 ");
    t(e);
    }
2023-02-13 13:52:18.827 2679-2708/? D/jswrapper: JS: ---00000000000000aaaaaa

从log中可看到,setTimeout函数没执行,请问有哪位大佬知道这是什么原因导致的呢?