一.背景
此问题是蓝牙列表界面息屏后再点击亮屏蓝牙界面卡住,划不动也不能返回,在人多的时候(附近开启的蓝牙设备过多的时候)会卡住大概四五秒才能滑动.
优化前效果见资源:
二.查找耗时点
根据Android Studio的Profiler工具进行排查,查找主线程时间线比较长的方法,如下:
根据工具可以看出ScanningStateChangedHandler的onReceive方法和DeviceListPreferenceFragment的addCachedDevices方法比较耗时,由于写这篇文档是晚上写的,人少,实际白天测试时间比这个多,主要就是这两个方法导致耗时,所以导致主线程卡住,导致界面卡主
三.优化ScanningStateChangedHandler的onReceive方法
先