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

And*_*lva 6 java multithreading android android-handler

我有这个线程从服务器下载一些图像.因此,一旦下载图像,我就会调用处理程序并进行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();
Run Code Online (Sandbox Code Playgroud)

Dee*_*eeV 6

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