The code doesn't show setting any animations. The end event happens "when this entry will never be applied again":
AnimationStateListener end
If you set an animation, it will continue to be applied until you 1) set another animation, 2) TrackEntry trackEnd
is reached, or 3) you clear the track (eg AnimationState clearTrack
). That is true for all animations, both looping and non-looping.