Обновление Android TextView в Thread и Runnable

Я хочу сделать простой таймер в Android, который обновляет TextView каждую секунду. Он просто считает секунды, как в Сапер.

Проблема в том, что когда я игнорирую tvTime.setText (...) (сделать его //tvTime.setText (...), в LogCat будет печататься следующее число каждую секунду. Но когда я хочу установить это число TextView (созданный в другом потоке), программа вылетает.

У кого-нибудь есть идеи, как это легко решить?

Вот's код (метод вызывается при запуске):

private void startTimerThread() {
    Thread th = new Thread(new Runnable() {
        private long startTime = System.currentTimeMillis();
        public void run() {
            while (gameState == GameState.Playing) {
                System.out.println((System.currentTimeMillis() - this.startTime) / 1000);
                tvTime.setText("" + ((System.currentTimeMillis() - this.startTime) / 1000));
                try {
                    Thread.sleep(1000);
                }
                catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    });
    th.start();
}

РЕДАКТИРОВАТЬ:

Наконец то я понял. Вот решение для тех, кто интересуется.

private void startTimerThread() {       
    Thread th = new Thread(new Runnable() {
        private long startTime = System.currentTimeMillis();
        public void run() {
            while (gameState == GameState.Playing) {                
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        tvTime.setText(""+((System.currentTimeMillis()-startTime)/1000));
                    }
                });
                try {
                    Thread.sleep(1000);
                } 
                catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    });
    th.start();
}

Ответы на вопрос(4)

Ваш ответ на вопрос