本文主要是介绍一起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机制的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
这篇关于一起Talk Android吧(第一百八十一回:Android中的Handler机制十)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!