我的程序基本上有3个步骤:
1)查询地理编码器对象的某些坐标,并将其存储在集合中
2)将结果发送到我的主模块以在地图上绘制
3)在Google地图小部件上绘制它们
我已经创建了一个Requestor类来处理地理编码-此类具有getResults()函数,该函数将坐标ArrayList返回到要在地图上绘制的主模块。
但是,当我尝试在onModuleLoad()方法的范围内执行所有3个步骤时,遇到了一个并发问题,并从结果集中提取了空结果。我已经使用一组3个按钮(请求,提取结果和绘图)来进行此操作,但是希望在模块加载时自动将其触发。
我怀疑这与触发事件和在适当的位置放置处理程序有关;如果是这样的话,请提供一个具体的例子,因为我试图找到一些关于EventHandlers的很好的教程。
最佳答案
听起来Requestor类是异步调用的。在这种情况下,您可以使用EventBus(使用HandlerManager-GWT 1.6或更高版本实现)在GWT中发送和订阅事件。因此,从地理编码服务获取结果后,您可以发送带有结果的事件。期望结果的模块通过EventBus预订此事件。
您可能要签出gwt-presenter和gwt-dispatch应用程序以获取实现和示例。