这是方法1,在runnable里面销毁线程
@Override
public void onDestroy() {
super.onDestroy();
workThread.interrupt();
}
private Runnable backgroundWork = new Runnable() {
@Override
public void run() {
while (!Thread.interrupted()) {
double randomDouble = Math.random();
MainActivity.UpdateGUI(randomDouble);
onDestroy();
}
}
};
这是方法2,在外部销毁线程
stopService(intent);
这两种情况关闭线程之后都在应用里面看不到在运行(数据不再刷新),同时在DDMS里面,也发现该线程是消失了(从有到无);
但是接下来再用startService开启线程的话,方法1抛出异常说线程已启动,
而方法2则能够再次启动线程刷新数据.
这是为什么,那有办法让线程自我销毁吗谢谢大家