我正在开发从服务器读取 json 数据的 phonegap 应用程序,但它会停止当前进程的执行,直到 javascript 被执行。
我想像线程一样执行进程。
我怎样才能实现它?
我正在开发从服务器读取 json 数据的 phonegap 应用程序,但它会停止当前进程的执行,直到 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;
}