Cordova 如何在phonegap开发中实现线程过程?

Cordova 如何在phonegap开发中实现线程过程?,cordova,Cordova,我正在开发phonegap应用程序,该应用程序从服务器读取json数据,但在执行javascript之前,它会停止当前进程的执行 我想像线程一样执行这个过程 如何实现它?WebView中的JavaScript不在UI线程上运行。它在WebCore线程上运行。execute方法也在WebCore线程上运行 如果需要与UI交互,则应使用以下功能: @Override public boolean execute(String action, JSONArray args, final Callbac

我正在开发phonegap应用程序,该应用程序从服务器读取json数据,但在执行javascript之前,它会停止当前进程的执行

我想像线程一样执行这个过程


如何实现它?

WebView中的JavaScript不在UI线程上运行。它在WebCore线程上运行。execute方法也在WebCore线程上运行

如果需要与UI交互,则应使用以下功能:

@Override
public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
    if ("beep".equals(action)) {
        final long duration = args.getLong(0);
        cordova.getActivity().runOnUiThread(new Runnable() {
            public void run() {
                ...
                callbackContext.success(); // Thread-safe.
            }
        });
        return true;
    }
    return false;
}
如果不需要在UI线程上运行,但不想阻止WebCore线程:

@Override
public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
    if ("beep".equals(action)) {
        final long duration = args.getLong(0);
        cordova.getThreadPool().execute(new Runnable() {
            public void run() {
                ...
                callbackContext.success(); // Thread-safe.
            }
        });
        return true;
    }
    return false;
}

在PhoneGap Android代码中,我推断PhoneGap有一个嵌入式服务器,从UI到本机的javascript调用是通过该嵌入式服务器进行的,因此回调可以在单独的线程中执行。