Android 与Handler短暂休息?

Android 与Handler短暂休息?,android,Android,我正试着和一个训练员休息一会儿。我做了一个这样的测试: Log.i("Test","Brake start!"); handler1.postDelayed(this, 500); Log.i("Test","Brake end!"); 但似乎没有休息!LogCat中的文本一直在运行。我需要这个短暂的中断来将一个精灵对象移动到某个位置,然后进行检查,但是如果没有任何中断,代码将同时执行所有操作,并且精灵对象在检查完成之前不会达到其目标 我是否错误地使用了处理程序,或者是否有更好的方法获得短暂休

我正试着和一个训练员休息一会儿。我做了一个这样的测试:

Log.i("Test","Brake start!");
handler1.postDelayed(this, 500);
Log.i("Test","Brake end!");
但似乎没有休息!LogCat中的文本一直在运行。我需要这个短暂的中断来将一个精灵对象移动到某个位置,然后进行检查,但是如果没有任何中断,代码将同时执行所有操作,并且精灵对象在检查完成之前不会达到其目标

我是否错误地使用了处理程序,或者是否有更好的方法获得短暂休息?我在实现Runnable的类中的游戏循环中运行代码。期待得到一些提示

试试这个:

Log.i("Test","Brake start!");
handler1.postDelayed(new Runnable() {
    public void run() {
         Log.i("Test","Brake end!");
    }
}, 500);

PostDelayed方法是一个异步调用,它使指定的runnable被添加到处理程序消息队列中,在指定的时间后执行,并立即返回执行下一行。如果在run()方法中有这段代码,那么您将看到刹车结束和下一次刹车开始之间有500个延迟。您的意思是:“但是似乎没有刹车!”?@pskink我的意思是LogCat中的文本一直在运行,每行文本之间是否应该有500个刹车?@Anirudh我在run()方法中有这段代码!?是的,应该有500毫秒的休息时间,你是如何验证没有休息时间的,将500改为5000,看看发生了什么。谢谢你的回答,但它不起作用!我将该值设置为5000,文本仍在LogCat中运行,没有任何中断。有什么问题吗?现在它似乎起作用了。我把你的代码放在一个方法中,当我需要一个短刹车时我会调用这个方法。我是新手,只是想知道这是怎么回事?其他东西,比如其他移动的精灵,会受到这个刹车的影响吗?或者其他代码会正常运行吗?我必须删除上面Raghunandan写的注释中的处理程序吗?@3D krativ其他代码在此期间将正常运行。发布
Runnable
时,可以在
run()
中添加代码,以便以后执行。除非从中创建一个伪循环,否则不需要删除。这里有一个临时内存泄漏的例子:如果你的
活动
在中断结束前被破坏,你需要删除。好吧,这样就不会与主游戏循环中的另一个run()方法发生冲突了?这段代码是否可以实现为anywere或仅在实现Runnable的类中实现?好奇的是,什么是伪循环?@3D kretiv如果另一个
run()
在后台线程上执行,则不会有冲突,但在这种情况下,您并不真正需要
处理程序。如果主线程上有一堆快速代码,也不会有问题。“伪循环”是我对周期性调用代码的称呼,例如在查找
dataUpdater
中,以及在
onResume
/
onPause
中。