- 大於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;
}