Cordova插件的执行方法内部的AsyncTask工作不正常

AsyncTask inside execute method of Cordova plugin not working properly

本文关键字:AsyncTask 工作 内部 不正常 方法 插件 执行 Cordova      更新时间:2023-09-26

我是第一次开发cordova插件,遇到了以下问题。

我已经创建了一个扩展CorodvaPlugin的类,并覆盖了给定的execute方法。我想要的是在asynctask完成后台任务后,将响应返回到JS,并在HTML上显示值,但发生的事情有时显示值,有时不显示。如有任何帮助,我们将不胜感激。

@Override
public boolean execute(String action, JSONArray args,
        CallbackContext callbackContext) throws JSONException {
    try {
        context = this.cordova.getActivity().getApplicationContext();
            this.mMyCallbackContext = callbackContext;
            new WSCall().execute();
            PluginResult pluginResult = new  PluginResult(PluginResult.Status.NO_RESULT); 
            pluginResult.setKeepCallback(true); 
            mMyCallbackContext .sendPluginResult(pluginResult);
            return true;    

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return false;
    }
}

在异步任务后期执行中,我已经完成了这个

       @Override
        protected void onPostExecute(String result) {

            PluginResult result_;
            if(groups!=null)
                result_  = new PluginResult(PluginResult.Status.OK, groups); 
            else if(ret_msg!=null)
                result_  = new PluginResult(PluginResult.Status.OK, ret_msg); 
            else
                result_  = new PluginResult(PluginResult.Status.OK, ""); 
            result_.setKeepCallback(false); 
            mMyCallbackContext.sendPluginResult(result_);
            pDialog.dismiss();
        }

使用此链接并且不要从execute方法返回true,只返回Pluginresult。