因为在Android中,每个应用默认为1个单独的UI线程 - 这是否意味着所有事件侦听器都仅限于程序执行?
(例如,即使页面上有30个按钮)无论我如何点击屏幕,一次只能激活一个View.OnClickListener
?即使我同时点击2个按钮?
答案 0 :(得分:2)
一次只能激活一个View.OnClickListener吗?
正确。
即使我同时点击2个按钮?
正确。这就是听众快速返回(亚毫秒)非常重要的原因,因此我们可以最大限度地减少单线程UI的影响。将任何可能较慢的工作 - 磁盘I / O,网络I / O,长时间计算等 - 移动到后台线程。
答案 1 :(得分:0)
是的,这对于推理您的计划非常有用。您永远不必担心UI线程中调用的方法中的赋值顺序等问题,因为在当前方法退出之前,UI线程中运行的其他方法都无法运行。例如,如果在UI线程中启动AsyncTask
,则在当前方法返回之前,您知道其onPostExecute
无法运行。如果您使用处理程序将内容发布到主循环器,则您知道它无法与任何组件生命周期方法同时运行。等等。