[問題] android looper的問題
new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
Message msg = new Message();
msg.obj = new test("I am handle");
handle.sendMessage(msg);
// Looper.loop();
Log.e("", "I am block test");
}
}).start();
final Handler handle = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
test ttt = (test) msg.obj;
Log.e("", "" + ttt.test);
}
};
問題有三個:
Looper.loop()如果不放的話,handleMessage還是接收的到數據
放與不放只差別在後面的block test有沒有跑到而已
1. 我在sendMessage裡面沒有找到dispatchMessage,找到底就是enqueueMessage
sendMessage到底是什麼時候call到handleMessage的?
2. 我想要在queue裡面多放一些message來驗證loop(),但我不知道怎麼下手
請問我要如何在其他線程sendMessage到子線程的looper裡面來呢?
3.loop()裡面的死循環是長這樣的
for (;;) {
Message msg = queue.next(); // might block
if (msg == null) {
// No message indicates that the message queue is quitting.
return;
}
看起來只要沒有message進來就會跳掉了,那到底block在哪個地方呢?
問題有點多,希望有人能幫我解惑...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.50.98
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1420940115.A.81B.html
→
01/11 22:04, , 1F
01/11 22:04, 1F
→
01/12 13:52, , 2F
01/12 13:52, 2F
→
01/12 13:52, , 3F
01/12 13:52, 3F
→
01/12 13:53, , 4F
01/12 13:53, 4F
→
01/12 13:53, , 5F
01/12 13:53, 5F
→
01/12 13:54, , 6F
01/12 13:54, 6F
→
01/12 14:08, , 7F
01/12 14:08, 7F
→
01/12 14:08, , 8F
01/12 14:08, 8F
→
01/12 14:09, , 9F
01/12 14:09, 9F
→
01/12 14:09, , 10F
01/12 14:09, 10F
→
01/12 14:11, , 11F
01/12 14:11, 11F
→
01/12 14:12, , 12F
01/12 14:12, 12F
→
01/12 14:13, , 13F
01/12 14:13, 13F
→
01/12 14:15, , 14F
01/12 14:15, 14F
→
01/12 14:16, , 15F
01/12 14:16, 15F