我想调试一个BroadcastReceiver
,它应该在触发操作android.intent.action.BOOT_COMPLETED
时启动它的onReceive方法。我读过几个来源,比如
但是所有这些都伴随着运行的解决方案
./adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
或
./adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c <CATEGORY> -n <PACKAGE_NAME>/<CLASS>
第一个重启设备或仿真器,但调试器断开连接。第二个不起作用。当我进入
./adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME mypackage/.BootReceiver
消息是
Broadcasting: Intent { act=android.intent.action.BOOT_COMPLETED cat=[android.intent.category.HOME] cmp=mypackage/.BootReceiver }
Broadcast completed: result=0
没有任何反应。所以我的问题是:
有没有办法调试在android.intent.action.BOOT_COMPLETED
发生时触发的BroadcastReceiver?
我使用Nexus 4作为设备,还使用Nexus 4作为模拟器。我的IDE是android studio,版本为1.2.2。
答案 0 :(得分:1)
使用 sendBroadcast()手动发送广播
在清单中的接收器中添加一些操作(&#34; NameofAction&#34;),然后手动使用 sendBroadcast(新的Intent(&#34; NameofAction&#34;))您在清单中的receiver元素中指定的名称。
并在 onReceive()中检查操作(&#34; NameofAction&#34;)。