本文来自:
有时当一个组件或者activity被destory()的时候要求其启动的线程也一起终止掉,我看书总结了一下有这有几种方法:
1.初始化的时候,定义启动的线程为一个守护线程,这样当主线程消亡掉的时候,其他线程也会被终止。java代码://使用下面的方法,当初始化一个线程时 myThread.setDaemon(true); myThread.start();
2.可在activity中的onstop()方法中调用以下代码。
java代码:if(myThread != null) { Thread dummy = myThread; myThread = null; dummy.interrupt(); }
3.可在线程run()方法中设置标志位。(不过这个并没有杀死线程,可视情况使用)
java代码:if(!paused) { //do something,这是线程run方法中 } boolean paused = false; //可在onPause()中通过设置标志位使线程不活动, protected void onPause() { paused = true; super.onPause(); } //可在onPause()中通过设置标志位激活线程, @Override protected void onResume() { super.onResume(); paused = false; }
原文地址: