Android Java 处理程序在循环中的每个记录处发布延迟
Android Java handler post delay at each records in loop
我在尝试在Android Java中制作像setTimeout()这样的动画时遇到了一些问题。我有一个几何列表,我想一次将它们绘制到地图上:
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));
}
我现在遇到的问题是,从路径几何传递到 moveNext() 的每个点,它在移动到另一个点之前不会保持 20 秒。相反,它只是一直循环到最后,而不是在每个点停止。
有什么想法吗?提前谢谢。
不确定我是否正确理解了意图,但请尝试以下操作:
long time = 0;
for (int iii = 0; iii < pathGeometries.size(); iii++) {
final int counter = iii;
time += 1000;
EventDetail.handler.postDelayed(new Runnable() {
@Override
public void run() {
moveNext(pathGeometries.get(counter).getX(),
pathGeometries.get(counter).getY(), 0, d);
}
}, time);
}
也许循环并使用循环索引来构建延迟时间。
for (int iii = 0; iii < pathGeometries.size(); iii++) {
EventDetail.handler.postDelayed(new Runnable()
{
public void run()
{
moveNext(pathGeometries.get(counter).getX(),
pathGeometries.get(counter).getY(), 0, d);
}
}, 1000 *(iii+1));
}
相关文章:
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 可以简化嵌套的延迟Q Promises解析吗
- onclick函数需要双击,因为类分配延迟
- AngularJs对所有页面中的所有记录进行排序
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 更多延迟动画
- window.location替换并传递URL历史记录条目中的变量
- Javascript历史记录转换为php行
- 对父作用域的指令更新延迟了一步
- JavaScript,PHP-用JavaScript将多个数据库记录发送到变量或表
- 为JS函数添加延迟
- 猫鼬在特定记录中查找嵌套记录
- 浏览器何时记录历史记录
- Recorder.js计算并偏移记录的延迟
- Android Java 处理程序在循环中的每个记录处发布延迟
- 快速布洛克斯聊天记录
- JQuery 数据表延迟加载导出数据到 pdf、excel 等,不显示所有记录
- 如何在浏览器中确定和记录远程服务器的延迟
- 使用django-el-pagination(延迟分页)保存浏览器历史记录
- 如何让程序记录“石头-剪刀-布”的分数?游戏