У меня была какая-то проблема при попытке сделать анимацию типа setTimeout() в Android Java. У меня есть список геометрий, и я хотел, чтобы построить их на карте по одному:Задержка отправки обработчика Java Java на каждую запись в цикле
public void getDirection(Event eventModel, final Context context) {
String eventX = eventModel.getEventX();
String eventY = eventModel.getEventY();
//Code to get data geometry data from API and store in pathGeometries
final Drawable d = EventDrawableImage.resizeCurrentLocImage("current_loc",
context);
for (int iii = 0; iii < pathGeometries.size(); iii++) {
final int counter = iii ;
EventDetail.handler.postDelayed(new Runnable()
{
private long time = 0;
public void run()
{
time += 1000;
EventDetail.handler.postDelayed(this, 1000);
moveNext(pathGeometries.get(counter).getX(),
pathGeometries.get(counter).getY(), 0, d);
}
}, 1000);
}
}
public static void moveNext(double coordx, double coordy, int k, Drawable d){
//EventMain.mMapView.removeAll();
// Set center
Point p = new Point(coordx, coordy);
EventMain.mMapView.zoomToResolution(p, 1);
// Add marker
PictureMarkerSymbol graphicIcon;
graphicIcon = new PictureMarkerSymbol(d);
Symbol symbol = graphicIcon;
HashMap<String, Object> attrMap = new HashMap<String, Object>();
attrMap.put("currentLoc", "User Current location");
EventMain.graphicsLayer.addGraphic(new Graphic(p, symbol, attrMap));
}
Проблема, что у меня был теперь в каждой точке из pathGeometries переходящих в MoveNext(), он не имеет места За 20 секунд до перехода в другую точку. Вместо этого он просто зацикливается до конца, не останавливаясь в каждой точке.
Любые идеи? Заранее спасибо.
Почему вы используете для 'loop'? для достижения требуемого поведения используйте только «Handler» –