【发布时间】:2016-12-19 07:12:30
【问题描述】:
在查看 android 文档时,我发现 looper.loop() 的以下代码。
public static void loop() {
...
for (;;) {
Message msg = queue.next(); // might block
if (msg == null) {
// No message indicates that the message queue is quitting.
return;
}
...
msg.target.dispatchMessage(msg);
...
}
}
现在这对我来说没有意义,因为我认为 Looper 的工作是延长线程的寿命并将下一条消息排队等待处理程序处理。但是,您可以看到有一个 return,并且该 return 不会使它在没有 msg 时退出循环从而退出线程?
那么looper究竟是如何让线程继续查询和执行任务的呢?
【问题讨论】: