我有点困惑,想确认我对线程在 Android 中的工作方式的理解是正确的。
如果我错了请纠正我,但据我所知,Android 事件(按钮点击、触摸事件等)在触发时被放在队列中的主线程中,然后按它们出现的顺序进行处理。
但是,如果这些事件的处理程序耗时很长,线程是否有可能将其放回队列的末尾以便稍后继续,或者是否保证事件将在他们来的顺序相同?
换句话说,如果我当前在方法 A 中,然后 onClick 被调用(不是从方法 A 调用),那么 A 总是会在 onClick 开始之前完成。
我问的原因是我需要知道我是否需要同步变量,即使只有一个线程访问它们。
谢谢!
最佳答案
这是有保证的。如果代码在 UI 线程中执行,则无法中断以在同一线程中运行其他代码。
(这就是为什么当应用程序在 UI 线程中做太多工作时,会发生应用程序无响应——消息未被处理,因为线程正在做其他事情)。
关于android - Android可以在单个线程内事件 "switch"吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24295842/