android - 谁将 touchEvent 传递给 Activity?
问题描述
当我们谈论活动时,我知道触摸事件流:
Activity -> Window -> DecorView -> ViewGroup -> ...
问题是:当用户在屏幕上按下 smth 时,谁将触摸事件传递给 Activity?
是否有任何服务或经理对此作出回应?
我在哪里可以读到它?
解决方案
通常,在 ActivityThread 中运行的Looper从操作系统接收输入消息并将输入事件分派到包括 Activity 在内的视图层次结构。在 onTouchEvent() 中设置断点并在 Android Studio Debugger 中查看“Frames”。您可以找到与事件交付相关的所有参与者(类、方法)。
推荐阅读
- loops - 在没有用户话语的情况下触发操作
- java - Java:如何在运行时修改 config.properties?
- flutter - 具有大量输入字段的 Flutter Grid - 有没有聪明的方法?
- python - Python peewee / fastapi 在不加载项目的情况下获取用户
- django - Django 导入导出用户外键和 M2M 导入逻辑检查
- c# - 如何获取集合视图中的所有子元素或子元素(xamarin 表单)
- excel - 如何在许多 .xslx 文件上运行 .txt 宏而无需更改 .xlsx 文件?
- tensorflow - 我对自定义可训练变量集的反向传播有疑问
- machine-learning - 为什么 H2O Stacked ensemble 只返回一个类概率?
- google-sheets - Google 表格 IMPORTXML XPath - 导入的内容为空