Android timer updating a textview (UI)

protected static void startTimer() {
    isTimerRunning = true; 
    timer.scheduleAtFixedRate(new TimerTask() {
        public void run() {
            elapsedTime += 1; //increase every sec
            mHandler.obtainMessage(1).sendToTarget();
        }
    }, 0, 1000);
}

public Handler mHandler = new Handler() {
    public void handleMessage(Message msg) {
        StopWatch.time.setText(formatIntoHHMMSS(elapsedTime)); //this is the textview
    }
};

Above code will work...

Note: Handlers must be created in your main thread so that you can modify UI content.


You should use Handler instead to update UI every X seconds. Here is another question that show an example: Repeat a task with a time delay?

Your approach doesn't work because you are trying to update UI from non-UI thread. This is not allowed.