This method is like the {@link #stop} method, only this one will not resultin a calls to the {@link TimingTarget#end(Animator)} method of all theregistered timing targets of this animation; it simply stops the animation immediately and returns. If the animation is not running, or is stopping, then this method returns {@code false}.
The animation may take some period of time to actually stop, it waits for all calls to registered {@link TimingTarget}s to complete. Invoking {@link #await()} after this method will wait until the animation stops.This means that the code snippet " {@code a.cancel(); a.start();}" could fail throwing an {@link IllegalStateException} at the call to{@link #start()} because the animation may not have stopped right away.This can be fixed by inserting a call to {@link #await()} or using thesnippet " {@code a.cancelAndAwait(); a.start();}" instead.
@return {@code true} if the animation was running and was successfullystopped, {@code false} if the animation was not running or was inthe process of stopping and didn't need to be stopped.
@see #await()
@see #cancelAndAwait()
@see #stop()