停止线程

时间:2011-07-18 21:04:18

标签: android multithreading file

我有一个应用程序有一个连续运行的线程,写入文件。它应该终止点击按钮。但这会导致异常泛滥,迫使应用程序终止。我尝试使用stop()函数,但这不起作用。任何人都可以建议一个方法(代码,如果可能的话)来安全地终止线程并关闭文件。

2 个答案:

答案 0 :(得分:1)

Java中的线程是合作的:你无法阻止来自外部的线程,你只能发出信号来阻止线程自动停止(即退出run方法)。

要发信号停止,只需要一个布尔字段running=true,该线程检查它的主循环。当running==false线程退出run()方法时。

在您的特定情况下,根据您如何读取要写入文件的数据,它可能会有点棘手。您是否使用任何阻塞读取调用来读取数据?

答案 1 :(得分:0)

对于帖子:

public void run() {
    while (running) {
        // write each line to file here
    {
    // close file
}

对于按钮的onClick()添加:

running=false;
myThread.join(); // enclose in try/catch and while loop appropriately to ensure the thread ends