当我完成活动时,是否应该对剩余的clearAnimation()
个对象使用stop()
或AnimationDrawable
?
答案 0 :(得分:1)
stop()
停止动画,仅此而已。由于stop()是AnimationDrawable.class
的方法,因此您可以在要停止AnimationDrawable
的动画时使用它,但不能在任何View上使用它。
clearAnimation()
是View.class
的方法。它将停止View的动画,另外:
如果定义了AnimationListener
,则将调用AnimationListener.onAnimationEnd(Animation animation)
。
如果定义了Handler
,则将调用Handler.postAtFrontOfQueue(Runnable r)
。
这是呼叫层次结构:
View.clearAnimation()
-> Animation.detach()
-> Animation.fireAnimationEnd()
和fireAnimationEnd()
方法:
private void fireAnimationEnd() {
if (mListener != null) {
if (mListenerHandler == null) mListener.onAnimationEnd(this);
else mListenerHandler.postAtFrontOfQueue(mOnEnd);
}
}