我想完成线程。 ProgressBar
进度将为 0,单击按钮时线程将关闭。我使用了destroy()、stop()、resume()、interrupt(),但不起作用。我怎样才能完成线程?
class TIME implements Runnable {
@Override
public void run() {
for (int i=0; i<10; i++) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
progressBar.setProgress(i);
if(i==9){Log.i("Log","Time's Up!");}
}
});
}
}
}
在onCreate()中
new Thread(new TIME()).start();
ProgressBar progressBar=(ProgressBar)findViewById(R.id.progressBar1);
progressBar.setMax(2000);
Button bt=(Button)findViewById(R.id.button1);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//TIME thread will finish. And progressBar.setProgress(0);
}
});
最佳答案
如果您的意思是线程希望自行完成 - 只需退出其运行函数,系统就会将其清理。如果你的意思是你想从另一个线程退出它 - 你不能直接这样做,因为它是一个非常不安全的操作,你永远不知道线程当时在做什么,以及它是否可能导致资源泄漏或将数据留在状态不好。相反,您 cancel() 线程,并且线程应该偶尔查看 isCanceled() 是否为 true,如果是,则像上面一样退出其 run 函数。
关于java - Android 完成线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28267091/