一.背景
此問題是藍牙列表界面息屏后再點擊亮屏藍牙界面卡住,劃不動也不能返回,在人多的時候(附近開啟的藍牙設備過多的時候)會卡住大概四五秒才能滑動.
優化前效果見資源:
二.查找耗時點
根據Android Studio的Profiler工具進行排查,查找主線程時間線比較長的方法,如下:
根據工具可以看出ScanningStateChangedHandler的onReceive方法和DeviceListPreferenceFragment的addCachedDevices方法比較耗時,由于寫這篇文檔是晚上寫的,人少,實際白天測試時間比這個多,主要就是這兩個方法導致耗時,所以導致主線程卡住,導致界面卡主
三.優化ScanningStateChangedHandler的onReceive方法
先