在Android中创建和终止线程

在Android中创建和终止线程,android,Android,我有一个应用程序,它创建一个线程来做一些工作。工作完成后,我就把线剪断了。问题是每次我杀死线程时,堆似乎增加了10k?为了进一步测试,我在1ms处理程序中执行了以下操作 TestThread new_thread = new TestThread(); new_thread = null; 每次运行此命令时,我都会看到DDMS下的堆增加。TestThread什么也不做。它没有代码。这只是一条空线 import android.util.Log; public class TestThread

我有一个应用程序,它创建一个线程来做一些工作。工作完成后,我就把线剪断了。问题是每次我杀死线程时,堆似乎增加了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(); 
} 

谢谢你的评论,但我甚至没有开始线程。我没有停止。我只是创建了一个新的实例。然后将该实例设置为null。我认为这意味着Android清理了未使用的线程实例?创建一个只持续很短时间的新线程实例然后被删除真的是件坏事吗?我一直希望在我的软件中实现这一点。我现在想知道这是否只是一种不好的做法。内存总是被分配,直到活动本身被销毁,即使在我监视DDMS中的内容时显示线程已被删除。