我有一個應用程序創建一個線程來完成一些工作。當工作完成後,我殺死線程。問題是,每次我殺死線程時,堆似乎增加了10K?爲了進一步測試,我在1ms處理程序中做了以下操作。在Android中創建和消除線程
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");
}
}
任何想法,爲什麼這是?
感謝您的評論,但我甚至沒有啓動線程。我不停止它。我只是創建一個新的實例。然後將該實例設置爲null。我認爲這將意味着Android清理了未使用的線程實例? – 2012-02-23 12:15:38
創建線程的新實例是否真的是一件壞事,只會持續很短的時間,然後被刪除?我一直想在我的軟件中做很多。我現在想知道如果這只是一個不好的做法。即使在我監視DDMS中的事件時顯示線程被移除時,內存始終被分配,直到活動本身被銷燬。 – 2012-02-23 18:51:46