1, 查看那个broadcast发的intent
adb shell dumpsys activity broadcasts 然后查看 history
2,修改Android AOSP的代码, BroadcastQueue.java
final void processNextBroadcastLocked(boolean fromMsg, boolean skipOomAdj) {
//把打印加在 BroadcastRecord r; 刚取出来的时候.大约在845 行。见下:
// First, deliver any non-serialized broadcasts right away.
while (mParallelBroadcasts.size() > 0) {
r = mParalledlBroadcasts.remove(0);
//将打印放在这,关键匹配的action,直接printStackTrace.就能看清触发机制
//r 的信息很多,例如 r.callerPackage
// r.intent.getAction() ,再加上,自己关心的intent如果匹配,直接backtrace。
// Exception e = new Exception();
// e.printStackTrace();
}
本文介绍如何使用ADB命令和修改BroadcastQueue.java源代码来追踪和调试Android应用中的广播发送和接收机制,通过具体步骤帮助开发者理解并解决广播相关的问题。
760

被折叠的 条评论
为什么被折叠?



