我想在Google v3,GWT 2.5.1中画出五条不同的路线。我初始化了一个在这个类中设置其DirectionDisplay和DirectionsRequest的路由。
当我开始我的网络项目时,有时只显示我的第一条路线,有时是全部五条,所以我决定做一个System.out.print(m);
结果:
为什么谷歌会在我的第一个请求之前满足我的第二个请求?我试图使用Thread.sleep(1000)来确保我的请求有时间按顺序返回,还有Timer/TimerTask,但没有成功。有什么想法吗?
DirectionsService o = DirectionsService.newInstance();
for (Integer i = 0; i < 4; i++) { //routes.size()
final int m = i;
final Route route = new Route("Route " + i.toString());
route.initRoute(m, getRoutingPresenter(), adressData, addressIndex);
//here i initialize the DirectionsRequests and its Displays, which
//i set in this class after execution.
o.route(directionsRequest, new DirectionsResultHandler() {
@Override
public void onCallback(DirectionsResult result,DirectionsStatus status) {
if (status == DirectionsStatus.OK) {
System.out.print(m);
...
}
}
);
}
}发布于 2013-05-23 23:46:00
Google可以花很长的时间来处理您的请求,您应该相应地编写代码。对于任何HTTP流量,这都是正确的。即使远程服务器保证所有请求都有固定的服务时间,Internet也不会,您的请求可能会通过它的任何旧路径。
您可以正确处理代码,以便响应顺序不重要,也可以编写响应顺序,以便等待所有响应返回,然后整理顺序本身。
我建议第一条,除非有非常具体的重要理由不这样做。
https://stackoverflow.com/questions/16725598
复制相似问题