我有一个计时器线程:
Thread updateTimerThread = new Thread(new Runnable()
{
@Override
public void run()
{
long updatedTime = 0L;
long timeInMilliseconds = 0L;
timeInMilliseconds = SystemClock.uptimeMillis() - startTime;//System.currentTimeMillis() - startTime;
updatedTime = timeSwapBuff + timeInMilliseconds;
int secs = (int) (updatedTime / 1000);
int mins = secs / 60;
secs = secs % 60;
int milliseconds = (int) (updatedTime % 1000);
timerValue.setText("" + mins + ":"
+ String.format("%02d", secs) + ":"
+ String.format("%03d", milliseconds));
customHandler.postDelayed(this, 100);
//updateTimerThread.start();
}
});
我这样开始:
updateTimerThread.start();
然后我试着阻止它:
updateTimerThread.stop();
但我看到工作站上有一条黑线。
我的问题是,它是否可以?停在这条黑线上的是什么? 也许我需要使用其他东西然后停止?
我需要它做的是当我点击停止它时,它将暂停停留在它到达的时间,当我再次点击开始它将再次启动计时器。
所以也许我不需要停下来或许以某种方式暂停它? 当我重新开始时它将重置它并将从头开始?
答案 0 :(得分:1)
一旦你正在做的工作完成,就让它退出run()
方法。无需明确停止线程。