android - Android可以在单个线程内事件 "switch"吗

标签 android multithreading

我有点困惑,想确认我对线程在 Android 中的工作方式的理解是正确的。

如果我错了请纠正我,但据我所知,Android 事件(按钮点击、触摸事件等)在触发时被放在队列中的主线程中,然后按它们出现的顺序进行处理。

但是,如果这些事件的处理程序耗时很长,线程是否有可能将其放回队列的末尾以便稍后继续,或者是否保证事件将在他们来的顺序相同?

换句话说,如果我当前在方法 A 中,然后 onClick 被调用(不是从方法 A 调用),那么 A 总是会在 onClick 开始之前完成。

我问的原因是我需要知道我是否需要同步变量,即使只有一个线程访问它们。

谢谢!

最佳答案

这是有保证的。如果代码在 UI 线程中执行,则无法中断以在同一线程中运行其他代码。

(这就是为什么当应用程序在 UI 线程中做太多工作时,会发生应用程序无响应——消息未被处理,因为线程正在做其他事情)。

关于android - Android可以在单个线程内事件 "switch"吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24295842/

相关文章:

multithreading - 如何在 Reactor 中使用多个线程执行 flatMap?

Android - 操作栏中 SearchView 上的 NullPointerException

c# - 从 ThreadID 获取 ThreadName

python - ThreadPoolExecutor 中的 ''.join() 占用内存

java - 让一个线程等待一个条件

java - 为什么我的多线程执行是单线程模式

android - 如何区分运行在Android和传统Linux上的ELF文件?

android - 将gridLayout的高度设置为wrap_content后 View 消失

java - 如何解决 HttpURLConnection 上的 NullPointerException?

php - 如何将二进制文件从android存储到mysql