如何在java中执行两次cordova回调(成功或错误)

时间:2016-01-19 15:12:07

标签: java android cordova

我有以下问题,我收到了cordova 2回调(成功和错误),我需要多次触发成功回调。

问题是cordova似乎不允许两次执行回调,它只执行一次。

//Will be executed once, whatever i do, only 1 time
callbacks.sendPluginResult(new PluginResult(PluginResult.Status.OK, contenedor.toString()));
// It doesn't trigger anymore of anyway :(
 callbacks.success(contenedor.toString());
 callbacks.sendPluginResult(new PluginResult(PluginResult.Status.OK, contenedor.toString()));
 callbacks.success(contenedor.toString());

由于某种原因,我需要每x次发送一次字符串多次(我想实现这个执行成功回调),我需要重复回调:(

我尝试了thisthis但没有成功,成功回调仍然只会触发一次!有没有办法轻松地执行两次回调?

已解决(facepalm)

如果有人遇到此问题,请快速解决:

PluginResult resulta = new PluginResult(PluginResult.Status.OK, "first response");
resulta.setKeepCallback(true);
callbacks.sendPluginResult(resulta);

PluginResult resultb = new PluginResult(PluginResult.Status.OK, "2nd response");
resultb.setKeepCallback(true);
callbacks.sendPluginResult(resultb);

请记住,如果是异步调用,我们需要先返回NO_RESULT

PluginResult pluginResult = new  PluginResult(PluginResult.Status.NO_RESULT); 
        pluginResult.setKeepCallback(true); // Keep callback

        return true; // in execute method

1 个答案:

答案 0 :(得分:0)

今天我跳进了同一期杂志,然后遇到了这篇文章,所以我想再次回答以更好地理解。

因此,如果您想两次或更多次收到回调,则不要使用success()方法。我重复不要使用success()方法。这就是我被困住的地方。因此,仅使用以下

 PluginResult result = new PluginResult(PluginResult.Status.OK, <Your Result>);
 result.setKeepCallback(true);
 callback.sendPluginResult(result);