Android 主線程 (UI線程)和子線程的用法
2023-04-12
1.在android中,我們常和兩種線程交互,分別為UI線程(又叫主線程),還有一種是子線程(Thread,Runnable)
2.主線程:UI線程
2.1從名字看下,UI線程,顧名思義就是和UI交互的線程。UI線程一般處理低耗時(shí)的UI操作(5秒以內(nèi)的耗時(shí)),
常見(jiàn)的有:UI的更新,Toast的彈起。popwin以及dialog的,以及view的操作。
子線程:目前比較常見(jiàn)的就是網(wǎng)絡(luò)的請(qǐng)求,必須在子線程操作。還有其他的耗時(shí)操作
3.如何判斷當(dāng)前線程執(zhí)行在主線程還是子線程:
booean isMainThread=Looper.myLooper()==Looper.getMainLooper();
如果當(dāng)前是子線程,必須執(zhí)行主線程的操作??梢酝ㄟ^(guò)
Looper.prepare();
主線程操作
Toast.make(context,"",int).show();
Looper.loop();
還有在子線程通過(guò)handler來(lái)操作主線程的更新。
子線程執(zhí)行主線程也可以通過(guò)
HandlerThread thred=new HandlerThread("threadName");
thread.start();
Handler handler=new Handler(hread.loop()){
handderMsg(Message msg){
}
};
hander.sendgEmptyMessage(int what);
本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請(qǐng)?jiān)谖闹凶⒚鱽?lái)源及作者名字。
免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com






