[TOC]
概述
本質(zhì)上是一個(gè)安卓的 HandlerThread,但是,HandlerThread 是一直運(yùn)行的,HandlerThreadPlus 在沒有消息處理一段時(shí)間后,線程會(huì)自動(dòng)結(jié)束。
優(yōu)點(diǎn):
- 避免使用太多 HandlerThread 造成應(yīng)用卡頓
使用
1. 引用
拷貝 util 包下的工具類到自己項(xiàng)目中
工具類
2. 創(chuàng)建線程和事件
Event 可以是任意一個(gè) JavaBean所坯,如:
public class SendMsgEvent {
private String content;
}
Thread 繼承 MHandlerThread,并制定泛型挂捅,如:
public class SendMsgThread extends MHandlerThread<SendMsgThread> {
@Override
protected void execute(SendMsgThread event) {
// TODO 線程要處理的事情
}
}
3. 注冊線程
HandlerThreadPlus.register(SendMsgThread.class);
或
HandlerThreadPlus.register(SendMsgThread.class, 6000l);
則線程 SendMsgThread 在處理完最后一個(gè)消息時(shí)芹助,等待 6000 毫秒沒有消息進(jìn)入則結(jié)束線程
修改默認(rèn)線程等待時(shí)間
HandlerThreadPlus.setAllThreadSleepTime(long allThreadSleepTime)
4. 發(fā)布事件
HandlerThreadPlus.send(Object event);
注意
- 目前 Event 和 Thread 僅支持一對(duì)一