Android HandlerThread 和 Handler区别
HandlerThread 和 Handler 都是 Android 中用于处理线程间通信和异步任务的工具,但它们的使用场景和功能有所不同。下面是它们的主要区别和各自的使用方法
Handler
Handler 是 Android 中用于处理消息和任务的类。它通常与主线程或工作线程(例如子线程)相关联,用于在某个线程中处理消息队列中的任务。
作用
用于在某个线程中发送和处理 Message、Runnable 或其他异步任务
Handler 会把任务放到它关联的线程的消息队列中,线程会从消息队列中取出任务并处理它们
可以通过 Handler 实现线程间通信,将工作线程中的任务结果传递给主线程等
创建和使用
Handler 通常是在已经存在的线程中创建的,默认与该线程的 Looper 绑定(如果该线程是主线程,Handler 就会和主线程的 Looper 绑定)
1 | // 主线程中的 Handler |
HandlerThread
HandlerThread 是 Thread 类的一个子类,它内置了一个 Looper。它的作用是启动一个新线程并为这个线程提供一个消息循环(即一个 Looper)。通过 HandlerThread 创建的线程可以像主线程一样,使用 Handler 发送和处理消息。
作用
HandlerThread 是一个便捷的类,用于在一个新的线程中创建并运行一个消息循环
HandlerThread 是一个便捷的类,用于在一个新的线程中创建并运行一个消息循环
使用 HandlerThread 可以避免手动为线程创建 Looper,提高了开发效率
创建和使用
HandlerThread 需要先启动,启动后你可以通过 HandlerThread.getLooper() 获取与该线程关联的 Looper,然后用该 Looper 创建 Handler
1 | // 创建一个 HandlerThread |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Web304030!