动画如何在UI线程上工作而又不会阻塞其他消息并且无法在UI Thread的消息队列中运行?

时间:2019-07-06 14:59:36

标签: java android animation handler ui-thread

我正在处理一些旧的android代码,这些代码看起来像这样:

public void TestMethod() {
    // handler posting on main thread
    handler.post(() -> {
        //Invokes method();    
    });

    animation.addListener(new AnimatatorListenerAdapter(){
         @Override
         public void onAnimationEnd() {
             // Do some stuff;
         }
    });
    animation.start();
} 

据我了解,动画生命周期回调始终在UI线程上执行。由于method()首先发布在消息队列上,因此应在onAnimationEnd()之前执行,但有时(3/10次)onAnimationEnd在method()之前执行。因此,现在我对android动画感到困惑(肯定我错过了一些东西)。

问题:

  • 此代码中的理想流程应该是什么?

  • method()onAnimationEnd()之间,哪个首先执行,为什么?

  • android动画如何在UI线程上执行而又不会阻止其他消息并且可在UI Thread的消息队列中运行?

0 个答案:

没有答案