我如何在java中停止一个线程?

时间:2015-09-14 09:01:23

标签: java

我有一个计时器线程:

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();

但我看到工作站上有一条黑线。

stop

我的问题是,它是否可以?停在这条黑线上的是什么? 也许我需要使用其他东西然后停止?

我需要它做的是当我点击停止它时,它将暂停停留在它到达的时间,当我再次点击开始它将再次启动计时器。

所以也许我不需要停下来或许以某种方式暂停它? 当我重新开始时它将重置它并将从头开始?

1 个答案:

答案 0 :(得分:1)

一旦你正在做的工作完成,就让它退出run()方法。无需明确停止线程。