一起Talk Android吧(第一百八十一回:Android的中Handler机制十)

各位看官们大家好,上一回中咱们说的是Android中Handler机制的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧!

看官们,我们在一章回中留下了一个问题,这一回中我们解答此问题。在解答问题前先了解一下Android中修改UI控件的规则:在Android中只能在主线程中修改UI控件

制定此规则一则是为了避免子线程修改主线程中的UI造成阻塞,再则是为了线程安全。试想一下主线程和子线程同时修改UI控件,哪个先修改?如何解决冲突?

我们在修改UI控件时必须遵守此规则,如果违反规则会有什么后果?会引起程序发生FATA Exception。异常提示:

Only the original thread that created a view hierarchy can touch its views.

这是很严重的错误,因此我们不要在子线程中修改主线程中的UI控件。如果一定要修改就像我们上一章回中的例子一样使用Handler机制,在子线程中发送消息到主线程中的消息队列中,然后在主线程中处理消息的时候修改UI控件。这也是我们为什么要绕一下的原因。看官们,现在知道上一章回中问题的答案了吧。

看官们,这种看上去有点绕的方法有专业的名字:异步机制,而Handle就是Android提供的一种异步机制。有看官说,那就是还有其它异步机制了哟?是的。我们在后面的章回中会介绍其它异步机制。

各位看官,关于Android中Handler机制的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

发布了537 篇原创文章 · 获赞 132 · 访问量 63万+

猜你喜欢

转载自blog.csdn.net/talk_8/article/details/105600210