美文网首页
HandleThread的用法

HandleThread的用法

作者: 苏简笔记 | 来源:发表于2016-10-14 20:05 被阅读473次

    什么是HandleThread呢?
    这个类的作用是创建一个包含looper的线程。

    什么时候使用到它呢?
    加入在应用程序当中为了实现同时完成多个任务,所以我们会在应用程序当中创建多个线程。为了让多个线程之间能够方便的通信,我们会使用Handler实现线程间的通信。这个时候我们手动实现的多线程+Handler的简化版就是我们HandlerThrea所要做的事了。

    HandleThread的基本用法:
    首先创建一个HandleThread:
    HandlerThread mHandlerThread = new HandlerThread("myHandlerThreand");
    mHandlerThread.start();//调用run方法

    其次:
    通过HandleThread的Lopper来创建Handle
    final Handler mHandler = new Handler(mHandlerThread.getLooper()) { @Override public void handleMessage(Message msg) { Log.i("tag", "接收到消息:" + msg.obj.toString()); } };

    然后就可以使用了:
    mHandler.sendMessage(msg);

    最后在不需要再用的时候记得手动收回:
    protected void onDestroy() {
    super.onDestroy();
    mHandlerThread.quit(); //quitSafely();可以用这个
    }

    分析:


    Paste_Image.png

    可以看出HandleThread的本质其实就是一个Thread.内部自己维护了一个消息队列和一个Looper;

    总结:
    HandlerThread本质上是一个Thread对象,只不过其内部帮我们创建了该线程的Looper和MessageQueue;

    通过HandlerThread我们不但可以实现UI线程与子线程的通信同样也可以实现子线程与子线程之间的通信;

    HandlerThread在不需要使用的时候需要手动的回收掉;

    相关文章

      网友评论

          本文标题:HandleThread的用法

          本文链接:https://www.haomeiwen.com/subject/evhnyttx.html