What happens to this thread runnable at the end once it is completed?

谁说我不能喝 提交于 2019-12-04 03:23:14

问题


I have this thread which downloads a few images from the server. So once it downloads the images I call the handler and carry on UI updation. So since stop() for thread is deprecated I am not able to use it. I have two questions here.

  1. What happens to this thread in the end?(means after I call the handler method what happens to it).
  2. OR how do I stop this thread without using stop()?

Here is my code.

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

回答1:


The thread will end and die on its own. You don't have to end it yourself. You won't be able to restart it without creating a new Thread object. The garbage collector will handle whatever memory needs to be release. The object will stay in memory as long as you hold a reference to it. Remove the reference, and the garbage collector will remove the object just like any other.




回答2:


You should look into the ExecutorService and Executors.

If its the same as regular Java then it provides some powerful thread management including shutting down all the threads at once.



来源:https://stackoverflow.com/questions/8037129/what-happens-to-this-thread-runnable-at-the-end-once-it-is-completed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!