Phonegap等待异步任务完成

时间:2014-03-04 12:02:33

标签: android multithreading cordova asynchronous

我有一个调用本机Java函数的JS函数。此本机功能将蓝牙语句发送给主机。该主机以异步方式应答,此答案由处理程序提取。

我的问题是,当答案实际存在时,是否可以将包含答案的结果发送给JS?

我尝试发送第二个Callback,但这不能正常工作,因为JS函数不会等到所有结果都存在(如本例所示:Android Phonegap: Notify javascript when an AsyncTask is finished)。它在......之前完成了。

其次我无法访问这行代码(来自示例),我认为它已被弃用:

this.success(result, this.myCallbackId);

希望你能帮忙!

2 个答案:

答案 0 :(得分:0)

我更喜欢AsyncTasks,但是嘿,不过你到达那里=]

我也非常喜欢Vito在该页面上的答案(未经检查的答案);直接调用javascript;无论如何,这就是我称之为javascripts的方式。

gl hf

答案 1 :(得分:0)

嗯,我知道,这可能不是最先进的,或者性能可能非常差,但我找到了自己的解决方法:

第一步是发送请求,当所有答案都可用时,我调用JS中的一个函数,该函数启动从本机代码中获取所有日期:

this.webView.sendJavascript("fetchValues("+ mResultArrayForResultValues+");");

如果有人有更好的方法来解决这个问题 - 请发布。到目前为止,我将使用此解决方案。