invalidate();
calls the list view to invalidate itself (ie. background color)
invalidateViews();
calls all of its children to be invalidated. allowing you to update the children views
I assume its some type of efficiency thing preventing all of the items to constantly have to be redraw if not necessary.