package io.github.btpka3.my_cordova_plugin; import android.util.Log; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaArgs; import org.apache.cordova.CordovaInterface; import org.apache.cordova.CordovaPlugin; import org.apache.cordova.CordovaWebView; import org.json.JSONException; import java.util.concurrent.atomic.AtomicInteger; public class MyCordovaPlugin extends CordovaPlugin { final String TAG = "btpka3"; // 为了演示成功与失败的计数器。 final AtomicInteger counter = new AtomicInteger(); @Override public void initialize(CordovaInterface cordova, CordovaWebView webView) { super.initialize(cordova, webView); // your init code here } public boolean execute(String action, CordovaArgs args, CallbackContext callbackContext) throws JSONException { if ("add".equals(action)) { Log.e(TAG, "======== android : args = [" + args.getInt(0) + ", " + args.getInt(1) + "]"); this.add(args.getInt(0), args.getInt(1), callbackContext); return true; } return false; } void add(final int a, final int b, final CallbackContext callbackContext) { cordova.getThreadPool().execute(new Runnable() { public void run() { Log.e(TAG, "======== android : running = [" + a + ", " + b + "]"); int sum = a + b; try { Thread.sleep(sum * 1000); } catch (InterruptedException e) { e.printStackTrace(); } if (counter.get() % 2 == 0) { callbackContext.success(sum); } else { callbackContext.error(sum); } counter.incrementAndGet(); } }); } }