为什么Thread只运行一次

时间:2015-06-06 08:35:32

标签: android multithreading

所以我有一个非常简单的问题,可能是愚蠢的问题,对不起,但我真的不知道为什么这个Thread只运行一次?

new Thread(new Runnable() {

    public void run() {
        try {
            Thread.sleep(3000);
            Log.e("comes here", "opr");
            if (done) {
                call(tv);
                done = false;
                Log.e("comes here","andr");
                Thread.currentThread().interrupt();
                Thread.currentThread().stop();
            }
        } catch (InterruptedException e) {
            // TODO Auto-generated catch
            // block
            e.printStackTrace();
        }

    }
}).start();

我调试它终止于此

Thread.sleep(3000);
Log.e("comes here", "opr");

它应该一次又一次地运行直到done =true

更新

现在线程没有终止

new Thread(new Runnable() {

    public void run() {
        do {
            try {
                Thread.sleep(3000);
                Log.e("comes here","opr");
                if (done) {
                    call(tvv);
                    done = false;
                    Log.e("comes here","andr");
                    Thread.currentThread().interrupt();
                    //Thread.currentThread().stop();
                }
            } catch (InterruptedException e) {
                // TODO Auto-generated
                // catch
                // block
                e.printStackTrace();
            }
        } while (!done);
    }
}).start();

在此之后我无法设置done=false

由于

1 个答案:

答案 0 :(得分:3)

执行run()方法后,该主题被视为完成 DEAD ,以便仅运行一次。

如果您想多次调用更新的问题,可以使用循环播放。