【问题标题】:AsyncTask inside execute method of Cordova plugin not working properlyCordova 插件的执行方法中的 AsyncTask 无法正常工作
【发布时间】:2014-09-11 06:17:37
【问题描述】:

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

我创建了一个扩展 CorodvaPlugin 的类并覆盖给定的执行方法。我想要的是在 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();

        }

【问题讨论】:

    标签: javascript android cordova plugins phonegap-plugins


    【解决方案1】:

    Use this link 并且不要从 execute 方法返回 true,只返回 Pluginresult。

    【讨论】:

    • PluginResult 不是仅适用于旧版本的 Cordova 吗?例如,在 Cordova 5.1.1 中,执行返回布尔值,而不是 PluginResult
    猜你喜欢
    • 1970-01-01
    • 2015-10-01
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多