为了避免 ANR,我们常常需要在线程中做耗时操作,然后把结果抛到主线程进行处理。
参考:https://blog.csdn.net/u011240877/article/details/72905631
使用步骤
1 创建一个HandlerThread,即创建了一个包含Looper的线程。
HandlerThread handlerThread = new HandlerThread("mythreadloop");
handlerThread.start();
2 获取HandlerThread的Looper
Looper looper = handlerThread.getLooper();
3 创建Handler,通过Looper初始化
Handler handler = new Handler(looper);
通过handler发送消息,就会在子线程中执行。
如果想让HandlerThread退出,则需要调用handlerThread.quit();。
4、使用handler.post(Runnable) 放入队列中,然后执行Runnable的代码。
RunnablemRunnable =new Runnable() {
@Override
public void run() {
// 子线程执行的代码
}
}
网友评论