Android 既然只有一个UI线程,那么所有事件侦听器都是程序化的吗?

Android 既然只有一个UI线程,那么所有事件侦听器都是程序化的吗?,android,multithreading,Android,Multithreading,因为在Android中,每个应用默认为一个UI线程——这是否意味着所有事件侦听器都仅限于过程执行 (例如,即使页面上有30个按钮)无论我如何单击屏幕,一次只能激活一个视图。OnClickListener?即使我同时点击两个按钮 一次只能激活一个View.OnClickListener 对 即使我同时点击两个按钮 对。这就是为什么监听器快速返回(亚毫秒)非常重要的原因,这样我们可以将单线程UI的影响降至最低。将任何可能比较慢的工作(磁盘I/O、网络I/O、长时间计算等)移动到后台线程。是的,这在对

因为在Android中,每个应用默认为一个UI线程——这是否意味着所有事件侦听器都仅限于过程执行

(例如,即使页面上有30个按钮)无论我如何单击屏幕,一次只能激活一个
视图。OnClickListener
?即使我同时点击两个按钮

一次只能激活一个View.OnClickListener

即使我同时点击两个按钮


对。这就是为什么监听器快速返回(亚毫秒)非常重要的原因,这样我们可以将单线程UI的影响降至最低。将任何可能比较慢的工作(磁盘I/O、网络I/O、长时间计算等)移动到后台线程。

是的,这在对程序进行推理时非常有用。您永远不必担心在UI线程中调用的方法中的赋值顺序,因为在当前方法退出之前,在UI线程中运行的任何其他方法都无法运行。例如,如果您在UI线程中启动一个
AsyncTask
,您知道它的
onPostExecute
在当前方法返回之前无法运行。如果使用处理程序将某些内容发布到主循环器,则知道它不能与任何组件生命周期方法同时运行。等等。

你所说的“程序性执行”是什么意思?你是说“连续执行”吗?“一次只能激活一个View.OnClickListener?”--正确。“即使我同时单击两个按钮?”——正确。这就是为什么听众快速返回(亚毫秒)非常重要的原因,这样我们可以将单线程用户界面的影响降至最低。@Commonware谢谢,如果你能把刚才所说的作为回答,我将能够接受。