我正在尝试构建一个必须每x秒更新一次标记的应用。好的,我已经完成了。这是我的onCreate方法中的代码:
h = new Handler();
h.postDelayed(new Runnable(){
public void run(){
atualizaMapa();
h.postDelayed(this, delay);
}
}, delay);
问题是:当我使用谷歌地图并拖动标记或打开infoWindow时,该过程会稍微锁定(我放了x秒)然后我可以拖动标记正常,10秒后它再次锁定...... 10秒后一次又一次锁定......我已经尝试了一切,但没有成功。有人可以帮我解决这个问题吗?
标记在atualizarMapa()上更新,此方法访问我的webservice并获得json响应......
答案 0 :(得分:0)
使用postDelayed()方法,
导致Runnable r被添加到消息队列中,在经过指定的时间后运行。 runnable将在连接此处理程序的线程上运行。时基是uptimeMillis()。深度睡眠所花费的时间会给执行带来额外的延迟。
最重要的是,
发布或发送到Handler时,您可以在消息队列准备好后立即允许处理该项目,或者在处理之前指定延迟或者在处理之前指定绝对时间被处理。后两者允许您实现超时,滴答和其他基于时间的行为。
您使用的方法会影响您的应用或消息安排的行为。