Re: [問題] Looper.loop() 可以改成 non block嗎
※ 引述《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 處理好像有點?)
:
: 希望大家能多給些意見 先在此感謝各位的回答
:
: --
: Everything is allright
: Tomorrow"ll be fine
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.216.178.86
: ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1503369340.A.212.html
: → ssccg: looper就用來處理message queue的,有事要做就發到message 08/22 12:51
: → ssccg: queue就好幹麻要動looper? 08/22 12:51
: → ssccg: 專門一個thread處理message有點什麼? 08/22 12:52
: → ssccg: 嫌thread太閒就多發點message不就好了 08/22 12:55
: 推 KeySabre: 原po完全誤解looper用途吧 08/22 21:19
: → y3k: 你用Handler就好了 08/22 22:53
抱歉 補充一下我的想法
我looper會接收 main thread來的 message 然後走socket發指令給 server端
但同時也要監聽有沒有server端回來的 resposne
如果response也要包成message的話 我就要多開一個 thread專門去做監聽的動作
然後再包成 message丟回來 (應該是這樣沒錯?)
但我想把兩個thread的事情合在一個 thread裡
while (true) {
1.接收並處理 UI thread 送來的 messagee //
2.監聽有無response
}
不知道這樣有解釋到我想問能不能有 non-block looper的疑問了?
y3k: 你用Handler就好了
不好意思 y3k大 我剛學 android沒多久 這個敘述太簡單了 我不太理解你的意思
我的確是有 handler 去處理 message
但我的 Idlehandler 是透過 MessageQueue addIdleHandler(MessageQueue.Idlehandler)
去讓 looper在 queue沒 message的時候 做我要做的事
感謝各位的回答 希望能跟各位再討論一下
--
Everything is allright
Tomorrow"ll be fine
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.216.178.86
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1503452032.A.D46.html
→
08/23 09:52, , 1F
08/23 09:52, 1F
→
08/23 09:53, , 2F
08/23 09:53, 2F
→
08/23 09:56, , 3F
08/23 09:56, 3F
→
08/23 09:56, , 4F
08/23 09:56, 4F
→
08/23 10:02, , 5F
08/23 10:02, 5F
→
08/23 10:03, , 6F
08/23 10:03, 6F
→
08/23 10:04, , 7F
08/23 10:04, 7F
→
08/23 10:04, , 8F
08/23 10:04, 8F
→
08/23 10:05, , 9F
08/23 10:05, 9F
→
08/23 10:05, , 10F
08/23 10:05, 10F
→
08/23 10:07, , 11F
08/23 10:07, 11F
→
08/23 10:08, , 12F
08/23 10:08, 12F
→
08/23 10:12, , 13F
08/23 10:12, 13F
→
08/23 10:22, , 14F
08/23 10:22, 14F
→
08/23 10:22, , 15F
08/23 10:22, 15F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章