java 如何安全终止线程
我在做android的时候,遇到一个问题,描述如下:
我有一个Button,一点击这个Button,就开始倒计时,比如20,19,18....0;当我再次点击这个button的时候,如何终止前面那个线程,让倒计时从新由20,19,18...这样倒计时?
------解决方案--------------------使用公共变量,子线程判断公共变量的改变确定是否重新开始从20倒计时
------解决方案--------------------和楼上差不多,设置一个公共的变量,然后提供一个对该公共变量的get 和set 方法,然后对set方法加锁,
然后再添加一个重置方法,该方法功能把公共变量置为20。
点击button的时候调用以下该重置方法就可以了。
至于子线程,可以一直跑不用停。
也可以结束子线程然后重新开启一个新线程。
------解决方案--------------------一个线程就可以了,再次点击这个button的时候把倒数的变量改为20继续倒数就行啦
------解决方案--------------------最简单的就是倒计时的数字使用全局变量
int time = 20;
for(time; time >= 0; time--){
System.out.println(time);
}
点击按钮的时候充值time就可以了
------解决方案--------------------
new R implements Runnable{
boolean running = true;
public void run(){
while(running){
// do something
}
}
publid void stop(){
this.runnint = false;
}
}
// ButtonView部分
R r = null;
onclick....(){
if(r != null){
r.stop();
}
r = new R();
new Thread(r).start();
}