Android应用UI随机半冻结:点击动画生效但OnClickListener无响应求助
随机UI半冻结问题:点击动画触发但OnClickListener无响应,ScrollView仍可滚动
问题现象
应用前台运行时会随机出现UI半冻结状态:
- UI组件(按钮、标签等)可点击,点击动画正常触发,但对应的
OnClickListener完全不执行 - 点击后的组件会保持“已点击”视觉状态,无法再次触发点击
- ScrollView仍能正常滚动,应用不会崩溃,仅手动重启可恢复
设备与版本差异
- 三星Galaxy S10 5G(Android 12):几天出现一次
- 一加8T(Android 12):每小时出现多次
- 目标SDK为Android 12L(SDK 32),但该问题在Android 11(SDK 30)时已存在
相关ANR记录(仅出现过一次,不确定是否直接关联)
E/ActivityManager: ANR in com.myApp.debug (com.myApp.debug/com.myApp.View.MainScreen) PID: 11357 Reason: Input dispatching timed out (Application does not have a focused window) Parent: com.myApp.debug/com.myApp.View.MainScreen Frozen: false Load: 8.0 / 8.88 / 9.36 ----- Output from /proc/pressure/memory ----- some avg10=0.08 avg60=0.02 avg300=0.18 total=25943745 full avg10=0.00 avg60=0.00 avg300=0.00 total=4032128 ----- End output from /proc/pressure/memory -----
已排查方向
- 内存泄漏:通过Android Studio Profiler监控RAM和CPU,问题在RAM占用高或低时都可能出现,CPU使用率稳定在约5%,暂未发现关联
- Fragment叠加过多:主Activity运行时会附加多个Fragment(包括页面元素和全屏页面),设置向导流程中最多叠加超过10个Fragment,怀疑可能存在焦点或事件分发冲突,但未找到直接证据
- 主线程负载:应用每隔几秒通过蓝牙/WiFi/云发送请求并更新视图,使用conflated channels的
consumeEach方法处理视图更新,监控显示主线程和后台线程负载均正常,未出现阻塞情况
请求帮助
该问题无明确触发条件,排查陷入瓶颈,希望有类似问题经验的开发者提供排查思路或解决方案。
内容的提问来源于stack exchange,提问作者KyleVarov
相关产品推荐
相关产品推荐

