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

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

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

您应该查看ExecutorService和Executors 。

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