为什么在Android中使用HandlerThread?

13 浏览
0 Comments

为什么在Android中使用HandlerThread?

在Android中,Handler可用于发布/处理消息,如果我不使用HandlerThread(将其Looper传递给Handler),那么这种情况下Handler是否使用了主线程(UI线程)的Looper?

如果Handler使用主线程的Looper,将会得到什么结果?可能会导致主线程阻塞吗?

admin 更改状态以发布 2023年5月23日
0
0 Comments

HandlerThread 的正常使用方法如下:

HandlerThread thread = new HandlerThread("A Handler Thread");
thread.start();
Handler handler = new Handler(thread.getLooper()){
    @Override
    public void handleMessage(Message msg) 
    {
    //....
    }
};

由于 HandlerThread 可以为 Handler 创建一个 Looper,因此这是一种方便的方式。

当你创建一个新的 Handler 时,它与创建它的线程/消息队列绑定—请参见官方文档…

0
0 Comments

如果您想要逐一执行后台任务,并且希望这些任务按照执行顺序运行,则可以使用HandlerThread。

例如,如果您想要逐一执行多个网络后台操作。

是的,HandlerThread有自己的looper,可以创建并发布处理程序,(因此它不会阻塞主线程)。

0