一个处理程序中的多个Runnable用于管理动画

时间:2015-11-27 10:46:56

标签: android multithreading android-animation runnable android-handler

我有三个动画可用于三个动画,我希望以一种好的方式管理它,以避免任何性能问题。

从我可以阅读的内容创建一个处理程序然后发送不同的消息进行不同的操作可能是一个解决方案:handler.sendEmptyMessage(msg)

基本上在我的代码中我点击了一个按钮,它应该通过一个新的Handler来触发我的3个动画

解决方案一(S1)onClick按钮监听器:

    Handler h = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            if (msg.what == 1) {
                postDelayed(rColumnOne, mSpeedc1);
            } else if (msg.what == 2) {
                postDelayed( rColumnTwo, mSpeedc1);
            } else if (msg.what == 3) {
                postDelayed( rColumnThree, mSpeedc1);
            }
        }
    };

    h.sendEmptyMessage(1);
    h.sendEmptyMessage(2);
    h.sendEmptyMessage(3);

解决方案二(S2)onClick按钮监听器:

Handler handler = new Handler();
handler.postDelayed( rColumnOne, mSpeedc1);
handler.postDelayed( rColumnTwo, mSpeedc2);
handler.postDelayed( rColumnThree, mSpeedc3);

S1& S2正在工作我的动画都被触发了。但有时似乎有点慢。大部分时间都没关系,但有时它并不平滑,或者没有触发所有动画。

可能是因为我不会在最后销毁runnable / handler但不确定在这种情况下是否需要它。 在这种情况下,最佳做法是什么?是否有比其他解决方案更好的解决方案?

0 个答案:

没有答案