[問題] Looper.loop() 可以改成 non block嗎

看板AndroidDev作者 (一票難求!)時間7年前 (2017/08/22 10:35), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/2 (看更多)
請問各位前輩 我目前想做的功能是 我開一個 thread 可以接收 main thread 來的message做處理(轉成自己的指令格式用socket傳給server) 同時也要監聽server是否有回應 現在的問題是 我用Looper來收 main thread message 但loop()當messgae queue沒東西會卡住 我希望做到的是 在Message queue沒東西時還能做其他的事 (像下面的架構) private class ClientThread implements Runnable { @Override public void run() { while(true) { ...... ...... looper.loop() // 正常會卡住 ............. // 我想做的事 } } } 請問有辦法讓 loop non block嗎 我目前想到的另一個做法是把我要做的事 寫成 IdleHanlder 綁定到 message queue 讓 queue空的時候去做我指定的事 但還是想請問各位 1. loop() 有辦法 nonblock嗎 2. 或者有什麼其他建議的做法 我想這個問題應該很多人會遇到 (專門開一個 thread 只能做meesgae 處理好像有點?) 希望大家能多給些意見 先在此感謝各位的回答 -- Everything is allright Tomorrow"ll be fine -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.216.178.86 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1503369340.A.212.html

08/22 12:51, , 1F
looper就用來處理message queue的,有事要做就發到message
08/22 12:51, 1F

08/22 12:51, , 2F
queue就好幹麻要動looper?
08/22 12:51, 2F

08/22 12:52, , 3F
專門一個thread處理message有點什麼?
08/22 12:52, 3F

08/22 12:55, , 4F
嫌thread太閒就多發點message不就好了
08/22 12:55, 4F

08/22 21:19, , 5F
原po完全誤解looper用途吧
08/22 21:19, 5F

08/22 22:53, , 6F
你用Handler就好了
08/22 22:53, 6F
文章代碼(AID): #1PcvXy8I (AndroidDev)
文章代碼(AID): #1PcvXy8I (AndroidDev)