作者:
abcb1 (一票難求!)
2017-08-22 10:35:35請問各位前輩
我目前想做的功能是 我開一個 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 處理好像有點?)
希望大家能多給些意見 先在此感謝各位的回答