Thread.sleep不工作Android

时间:2013-08-01 06:19:50

标签: java android multithreading

我有一个objectAnimator

final ObjectAnimator anim = (ObjectAnimator) AnimatorInflater
                .loadAnimator(getActivity(), R.anim.flip);
        anim.setTarget(tvDebitAmount);
        anim.setDuration(3000);
        anim.start();

我需要这个在循环中工作,有一些差距。我的意思是,一旦这个动画结束,我需要在等待4000毫秒后再次调用anim.start。

我尝试将它置于无限循环中,并在anim.start()之后放入thread.sleep()。它不起作用(整个屏幕没有响应)。我怎样才能让它等待/睡觉?

2 个答案:

答案 0 :(得分:4)

Thread.sleep()阻止当前线程,即UI线程,你不希望这样。

要使动画以您想要的方式工作,只需将其包装在运行4000毫秒的动画集中,而集合中的实际动画仍然只需3000毫秒。然后将动画重复模式设置为RESTART并重复计数到INFINITE

答案 1 :(得分:1)

我建议您使用ScheduledThreadPoolExecutor或者使用Timer。因此它在单独的线程中工作而不会干扰主线程。获取有关计时器here的示例。