这个线程一旦完成就会在最后运行时会发生什么?

时间:2011-11-07 13:29:46

标签: java android multithreading android-handler

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

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

    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();
    

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

您应该查看ExecutorServiceExecutors

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