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.