※ 引述《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 处理好像有点?)
:
: 希望大家能多给些意见 先在此感谢各位的回答
:
: