[問題] Looper.loop() 可以改成 non block嗎
請問各位前輩
我目前想做的功能是 我開一個 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
08/22 12:51, 1F
→
08/22 12:51, , 2F
08/22 12:51, 2F
→
08/22 12:52, , 3F
08/22 12:52, 3F
→
08/22 12:55, , 4F
08/22 12:55, 4F
推
08/22 21:19, , 5F
08/22 21:19, 5F
→
08/22 22:53, , 6F
08/22 22:53, 6F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章