De acuerdo con la conferencia "the world of listView", debe usarlo cada vez que listView no muestre nada (es decir, datos vacíos).
Un ejemplo del que hablan es cuando se realiza el filtrado (en el método "publishResults"). en el video de la conferencia, son las 36:00.
Lo extraño es, ¿por qué no acaba de combinarlo con los notifyDataSetChanged, lo que podría comprobar si el número de los artículos y decidir llamarlo por sí mismo ...
De acuerdo con lo que he visto , lo que se habló en la conferencia no es del todo correcto. si el adaptador ha mostrado algo de contenido anteriormente, y ahora no contiene nada, y ahora llama a notifyDataSetInvalidated, no ocurrirá nada, por lo que el contenido permanecerá, por lo que creo que es seguro utilizar notifyDataSetInvalidated solo cuando los datos no cambian .
Por ejemplo, si se maneja el filtrado, y se obtiene los mismos resultados (y tal vez es suficiente para comprobar el número de resultados) como antes, puede llamar notifyDataSetInvalidated en lugar de notifyDataSetChanged
Tenga en cuenta que casi siempre quiere llamar a 'notifyDataSetChanged()' en lugar de invalidar; el cambio se redibujará automáticamente. – karl