- 大于Handler Looper的周期时基本可靠(例如主线程>50ms)
- Looper 负载越高,任务越容易积压,进而导致卡顿
- 不要用Handler的delay做计时使用
使用独享的Looper
val handlerThread=HandlerThread("test_thread")
handlerThread.start()
val handler=Handler(handlerThread.looper)
HandlerThread
方便启动具有Looper的新线程。Looper可以在创建handler时使用
//HandlerThread 的run方法
@Override
public void run() {
mTid = Process.myTid();
Looper.prepare();
synchronized (this) {
mLooper = Looper.myLooper();
notifyAll();
}
Process.setThreadPriority(mPriority);
onLooperPrepared();
Looper.loop();
mTid = -1;
}