这个线程一旦完成就会在最后运行时会发生什么?
我有这个线程从服务器下载一些图像。 因此,一旦下载了图像,我就会调用处理程序并进行UI更新。 因此,由于线程的stop()已弃用,我无法使用它。 我这里有两个问题。
- 这个线程最终会发生什么?(在我调用处理程序方法之后意味着它发生了什么)。
- 或者如何在不使用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相同,那么它提供了一些强大的线程管理,包括立即关闭所有线程。
- 不从服务器读取文本
- Eclipse不会运行:\ .metadata \ .log错误
- java.lang.IllegalArgumentException:可能无法回收废弃或附加的视图。 isScrap:false isAttached:true
- NullPointerException在Android.os.Bundle上
- MediaPlayer.create()始终返回null
- 在Android问题上播放带有MediaPlayer类的mp3
- 了解Android中的Arraylist IndexOutOfBoundsException
- 带有ProgressDialog的外部AsyncTask类
- TextView Android里面的可点击单词