※ 引述《abcb1 (一票難求!)》之銘言:
: 標題: [問題] Looper.loop() 可以改成 non block嗎
: 時間: Tue Aug 22 10:35:35 2017
:
: 請問各位前輩
: 我目前想做的功能是 我開一個 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 處理好像有點?)
:
: 希望大家能多給些意見 先在此感謝各位的回答
:
: