Answer from Wolfram Technology Group:
In your second example, the value of data is being changed (data = data + RandomInteger[1, nbars]) while the expression is getting evaluated, and, as you mentioned, for each change the Animation is repeated. This is As Designed.
If you look at the FullForm of your expression (you can add //FullForm at the end of your expression and evaluate it), you can see that Animate is basically a Manipulate module (with Animator for ControlType and SynchronousUpdating set to True):
nbars = 20;
data = Array[0 &, nbars];
Manipulate[
CompoundExpression[Set[data, Plus[data, RandomInteger[1, nbars]]],
BarChart[data]],
List[
n, 1, 5, 1, Rule[AnimationRepetitions, 1],
Rule[AppearanceElements,
List["ProgressSlider", "PlayPauseButton", "FasterSlowerButtons",
"DirectionButton"]]
],
Rule[ControlType, Animator], Rule[AppearanceElements, None],
Rule[DefaultBaseStyle, "Animate"],
Rule[DefaultLabelStyle, "AnimateLabel"],
Rule[SynchronousUpdating, True], Rule[ShrinkingDelay, 10.`]
]
And if you look at the output cell for the first expression (without FullForm) by selecting the cell and pressing Shift+Ctrl+E (or clicking on "Show Expression" in the "Cell" menu in Mathematica), you can see that the output cell is a DynamicModuleBox. It will dynamically update with the updated value of "data".
datagets updated 30+times before n gets to 5, and when it reaches 5 the "play" icon is displayed as if its stopped. AlsoAnimationRunning -> Falsedoes not work – george2079 Oct 21 '16 at 17:50ListAnimate[Table[data = data + RandomInteger[1, nbars]; BarChart[data], {n, 1, 5, 1}]]– george2079 Oct 21 '16 at 17:58