我有一个创建线程以执行某些工作的应用程序。工作完成后,我终止了线程。问题是每次我杀死线程时,堆似乎都增加了10k?为了进一步测试,我在1ms处理程序中执行了以下操作。
TestThread new_thread = new TestThread();
new_thread = null;
每次运行此命令时,都会看到DDMS下的堆增加。 TestThread什么也不做。它没有代码。它只是一个空线程。
import android.util.Log;
public class TestThread extends Thread {
public TestThread () {
Log.d("TESTTHREAD","Constructed");
}
public void run() {
Log.d("TESTHREAD","Run");
}
}
知道为什么会这样吗?
最佳答案
不建议使用myThread.stop()方法,因为它可能会将应用程序置于
不可预测的状态。而是在需要时使用以下内容,例如在onStop()中
父组件的方法:
//use to stop the thread myThread
if(myThread != null) {
Thread dummy = myThread;
myThread = null;
dummy.interrupt();
}