Handler(异步消息处理机制)所在的主线程里面既然是无限循环为什么不阻塞?

2022-04-22 22:17:01 +08:00
 nnegier
这个在成都面试感觉问到的有点多呀,所以发上来讨论一下。

首先我个人没有直接回答这个问题,我个人觉得这个是会阻塞的,就是 ANR ,在一些方法里做了耗时操作(主线程),所以我觉得这个问题怪怪的。后面我也有补充,屏幕亮着,每隔一段时间 16ms (现在应该不是固定值了,看屏幕刷新率)就会刷新一次屏幕(当然还有很多其它类型的消息,触摸消息按键消息以及我们自己的消息等),意思就是一直都会有消息进来处理的意思。说到这儿,貌似已经不言自明了,这个问题就被放一边儿了,换个问题问了。

只是这个问题真的是问题吗?都说问一个好问题很重要。这个感觉有些问题。
9985 次点击
所在节点    Android
21 条回复
verzqli
2022-07-07 12:25:04 +08:00
ANR 和无限循环是两回事,ANR 是系统设置的,是为了提升用户体验产生的,如果说不为了用户体验,给 ANR 等待时间设个无限时间,那你的手机永远不会崩溃

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/848675

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX