8

我有这个从服务器下载一些图像的线程。因此,一旦它下载了图像,我就会调用处理程序并进行 UI 更新。因此,由于线程的 stop() 已被弃用,因此我无法使用它。我在这里有两个问题。

  1. 最后这个线程会发生什么?(意味着在我调用处理程序方法之后它会发生什么)。
  2. 或者如何在不使用 stop() 的情况下停止该线程?

这是我的代码。

handler=new Handler()
    {
        public void handleMessage(Message msg)
        {
            if(msg.what==0)
            {
                //UI Updation takes place. 
            }
        }
    };



final Thread t = new Thread(new Runnable() {
        public void run() {
            Log.i("Inside Thread", "Downloading Images...");
                     myDownlaodMethod();
            handler.sendEmptyMessage(0);
        }
    });
    t.start();
4

2 回答 2

8

线程将自行结束并死亡。你不必自己结束它。Thread如果不创建新对象,您将无法重新启动它。垃圾收集器将处理需要释放的任何内存。只要您持有对它的引用,该对象就会保留在内存中。删除引用,垃圾收集器将像删除其他对象一样删除该对象。

于 2011-11-07T13:34:07.627 回答
0

您应该查看ExecutorServiceExecutors

如果它与常规 Java 相同,那么它提供了一些强大的线程管理,包括一次关闭所有线程。

于 2011-11-07T13:42:09.823 回答