在Android中创建和终止线程
我有一个应用程序,它创建一个线程来做一些工作。工作完成后,我就把线剪断了。问题是每次我杀死线程时,堆似乎增加了10k?为了进一步测试,我在1ms处理程序中执行了以下操作在Android中创建和终止线程,android,Android,我有一个应用程序,它创建一个线程来做一些工作。工作完成后,我就把线剪断了。问题是每次我杀死线程时,堆似乎增加了10k?为了进一步测试,我在1ms处理程序中执行了以下操作 TestThread new_thread = new TestThread(); new_thread = null; 每次运行此命令时,我都会看到DDMS下的堆增加。TestThread什么也不做。它没有代码。这只是一条空线 import android.util.Log; public class TestThread
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();
}
谢谢你的评论,但我甚至没有开始线程。我没有停止。我只是创建了一个新的实例。然后将该实例设置为null。我认为这意味着Android清理了未使用的线程实例?创建一个只持续很短时间的新线程实例然后被删除真的是件坏事吗?我一直希望在我的软件中实现这一点。我现在想知道这是否只是一种不好的做法。内存总是被分配,直到活动本身被销毁,即使在我监视DDMS中的内容时显示线程已被删除。