android 的事件监听器是如何工作的?

2023-11-27

如何从 View 对象捕获事件?只有一个线程在运行:UI 线程(当我们没有实现任何我们自己的线程时)。假设我已经为按钮实现了 onClickListener 并且该按钮的功能是“取消”。对于由按钮引发的事件,即取消 UI 正在执行的任何操作,它必须中断。那么是这样吗?他们的工作方式像中断?

开发者网站上的 API 指南提供了精彩的解释,但仍然没有给出完整的图片。http://developer.android.com/guide/topics/ui/ui-events.html


在内部,Android 正在运行事件循环来处理 UI 事件。要获得漂亮的图表,请参阅本演示文稿的第三张幻灯片。该线程用于将系统调用分派给 UI 元素:

系统不会为每个实例创建一个单独的线程 成分。在同一进程中运行的所有组件 在UI线程中实例化,并且对每个组件的系统调用是 从该线程调度。

(来源:进程和线程)

看看Android 应用程序框架视频内部来自 Google I/O 2008。它对事件循环(由 Looper 和消息队列组成)有很好的解释。有趣的事情从视频的 26m 左右开始。

The onClick()方法将从原始线程的同一线程中调用设置点击监听器()被称为。如果它是主/UI 线程,那么您应该避免在侦听器中执行长时间运行的任务 - 它们会阻塞 UI 线程并可能导致应用程序无响应。使用类似的解决方案异步任务反而。

请看这篇博文详细教程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 的事件监听器是如何工作的? 的相关文章

随机推荐