一、问题
最近遇到一个问题,发送广播(普通广播)给另一个应用,但是广播需要要等约1min后才收到。
二、分析原因
原因是系统有个广播接收器在接收到广播后处理了接近50s,所以阻塞了后面的广播处理。如果大家也出现了广播阻塞问题,想知道广播到底堵塞到哪里?这里先给大家分享下这个问题分析方法:
1、首先,串口设置输出log转存到a.txt文件中(名字随意取),然后在串口打印下面的指令,等一会将所有的广播信息收集起来。
dumpsys activity broadcasts
2、然后,根据自己堵塞的广播名称在a.txt文件进行过滤,如下代码所示,有三次发送。
Line 10070: #102: act=com.xx.xxx.SHUTDOWN flg=0x10 (has extras)
Line 10078: #104: act=com.xx.xxx.SHUTDOWN flg=0x10 (has extras)
Line 11031: #207: act=com.xx.xxx.SHUTDOWN flg=0x10 (has extras)