Ok Now I better understand what you are doing. I thought you were using a thread to count. Now it sounds like you are using it to update the user interface.
Instead of what you should probably do, use a self-call Handler . Handler are great little classes that can execute asynchronously. They are used universally in Android because of their diversity.
static final int UPDATE_INTERVAL = 1000;
What this will do is send messages to Handler that will be executed. In this case, it is placed every 1 second. There is a slight delay because Handlers are message queues that start when they are available. They also run in the thread on which they are created, so if you create it in the user interface thread, you can update the interface without any fancy tricks. You delete messages in onPause() to stop updating the user interface. The watch may continue to run in the background, but you will no longer show it to the user.
source share