post : post hace que el Runnable se agregue a la cola de mensajes,
Ejecutable: representa un comando que se puede ejecutar. A menudo se usa para ejecutar código en un hilo diferente.
run () : comienza a ejecutar la parte activa del código de la clase. Este método se llama cuando se inicia un hilo que se ha creado con una clase que implementa Runnable.
getView().post(new Runnable() {
@Override
public void run() {
getView().startAnimation(a);
}
});
codigo :getView().startAnimation(a);
en tu código,
post hace que Runnable (el código se ejecutará en un hilo diferente) para agregar la cola de mensajes.
Por lo tanto, startAnimation se activará en un nuevo hilo cuando se obtenga del messageQueue
[EDITAR 1]
¿Por qué usamos un nuevo hilo en lugar del hilo de la interfaz de usuario (hilo principal)?
Hilo de la interfaz de usuario:
Cuando se inicia la aplicación, Ui Thread se crea automáticamente
está a cargo de enviar los eventos a los widgets apropiados y esto incluye los eventos de dibujo.
También es el hilo con el que interactúas con los widgets de Android.
Por ejemplo, si toca el botón a en la pantalla, el hilo de la interfaz de usuario envía el evento táctil al widget, que a su vez establece su estado presionado y publica una solicitud de invalidación en la cola de eventos. El hilo de la interfaz de usuario quita la cola de la solicitud y notifica al widget que se redibuje.
¿Qué sucede si un usuario presiona un botón que hará una operación prolongada?
((Button)findViewById(R.id.Button1)).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
final Bitmap b = loadImageFromNetwork();
mImageView.setImageBitmap(b);
}
});
La interfaz de usuario se congela. El programa incluso puede fallar.
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
final Bitmap b = loadImageFromNetwork();
mImageView.setImageBitmap(b);
}
}).start();
}
Rompe la regla de Android que nunca actualiza la interfaz de usuario directamente desde el hilo del trabajador
Android ofrece varias formas de acceder al hilo de la interfaz de usuario desde otros hilos.
- Activity.runOnUiThread (ejecutable)
- View.post (ejecutable)
- View.postDelayed (ejecutable, largo)
- Manipulador
Como abajo,
View.post (ejecutable)
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
final Bitmap b = loadImageFromNetwork();
mImageView.post(new Runnable() {
public void run() {
mImageView.setImageBitmap(b);
}
});
}
}).start();
}
Manipulador
final Handler myHandler = new Handler(Looper.getMainLooper());
(new Thread(new Runnable() {
@Override
public void run() {
final Bitmap b = loadImageFromNetwork();
myHandler.post(new Runnable() {
@Override
public void run() {
mImageView.setImageBitmap(b);
}
});
}
})).start();
}

Para más información
http://android-developers.blogspot.com/2009/05/painless-threading.html
http://www.aviyehuda.com/blog/2010/12/20/android-multithreading-in-a-ui-environment/