Android ya tiene una clase para lo que quieres hacer, se llama CountDownTimer:
http://developer.android.com/intl/es...DownTimer.html
En el constructor indicas el tiempo total y el tiempo de 1 paso (si el contador es de 30 segundos y quieres que el TextView cambie cada 1 segundo usarías 30000 y 1000 respectivamente, como en el ejemplo de Google).
Luego escribes las funciones onTick y onFinish, que siempre se ejecutan en el hilo principal, y por tanto puedes usar el onTick para actualizar el TextView y el onFinish para lo que quieres que ocurra cuando el contador llega a 0.