在Android系统中,执行耗时操作必须使用子线程来执行,执行完线程以后线程便会自动销毁。但是如果如果我们有很多分步的耗时操作,如果我们不断的创建新的线程执行,不断销毁线程便会消耗很多的性能,那么该怎么办呢?android给我们提供了两个方法,一个就是使用本篇文章讲的HandlerThread,另一个便是使用线程池管理线程。
一、简单使用
1.创建实例对象
//参数表示线程名称
HandlerThread handlerThread = new HandlerThread("myHandlerThread");
2.启动HandlerThread线程
handlerThread.start();
3.构建循环消息处理机制
mThreadHandler = new Handler(mHandlerThread.getLooper()) {
@Override
public void handleMessage(Message msg) {
//耗时操作
}
};
4.退出循环
如果不需要处理耗时的任务了需要让looper停下来,回收资源
mHandlerThread.getLooper().quit()
或者
mHandlerThread.getLooper().quitSafely()