handler線程切換的原理是通過Handler對象將任務(wù)發(fā)送到主線程的消息隊(duì)列中,然后主線程按照消息隊(duì)列的順序依次執(zhí)行任務(wù)。具體原理如下:
創(chuàng)建一個(gè)Handler對象,并關(guān)聯(lián)到主線程的消息隊(duì)列。
在子線程中,通過Handler對象的post方法將任務(wù)封裝成Message對象,并發(fā)送到主線程的消息隊(duì)列中。
主線程按照消息隊(duì)列的順序依次取出Message對象,并執(zhí)行對應(yīng)的任務(wù)。
當(dāng)主線程執(zhí)行完一個(gè)任務(wù)后,會繼續(xù)從消息隊(duì)列中取出下一個(gè)任務(wù)并執(zhí)行,直到消息隊(duì)列中沒有任務(wù)為止。
通過這種方式,子線程可以通過Handler將任務(wù)發(fā)送到主線程執(zhí)行,實(shí)現(xiàn)了線程之間的切換。