您当前的位置: 首页 > 

ZhangJiQun&MXP

暂无认证

  • 1浏览

    0关注

    1187博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

HandlerThread简单理解,子线程创建线程

ZhangJiQun&MXP 发布时间:2019-08-05 11:14:55 ,浏览量:1

HandlerThrea

HandlerThread本质上就是一个普通Thread,只不过内部建立了Looper.

HandlerThread的常规用法
  • 创建一个HandlerThrea启动一个HandlerThread

mThread = new HandlerThread("handler_thread");

mThread.start();

子线程创建线程:

可以在子线程直接new一个Handler吗?怎么做?

不可以,因为在主线程中,Activity内部包含一个Looper对象,它会自动管理Looper,处理子线程中发送过来的消息。而对于子线程而言,没有任何对象帮助我们维护Looper对象,所以需要我们自己手动维护。所以要在子线程开启Handler要先创建Looper,并开启Looper循环.

代码:

 

Handler:在android中负责发送和处理消息,通过它可以实现其他支线线程与主线程之间的消息通讯。

Thread:Java进程中执行运算的最小单位,亦即执行处理机调度的基本单位。某一进程中一路单独运行的程序。

HandlerThread:一个继承自Thread的类HandlerThread,Android中没有对Java中的Thread进行任何封装,而是提供了一个继承自Thread的类HandlerThread类,这个类对Java的Thread做了很多便利的封装。HandlerThread继承于Thread,所以它本质就是个Thread。与普通Thread的差别就在于,它在内部直接实现了Looper的实现,这是Handler消息机制必不可少的。有了自己的looper,可以让我们在自己的线程中分发和处理消息。如果不用HandlerThread的话,需要手动去调用Looper.prepare()和Looper.loop()这些方法。

 

 

关注
打赏
1665659684
查看更多评论
立即登录/注册

微信扫码登录

0.0518s