Como executar um thread Runnable no Android em intervalos definidos?

Eu desenvolvi um aplicativo para exibir algum texto em intervalos definidos na tela do emulador do Android. Estou usando oHandler classe. Aqui está um trecho do meu código:

handler = new Handler();
Runnable r = new Runnable() {
    public void run() {
        tv.append("Hello World");               
    }
};
handler.postDelayed(r, 1000);

Quando executo este aplicativo, o texto é exibido apenas uma vez. Por quê?

questionAnswers(10)

yourAnswerToTheQuestion