嗨,有没有可能检查广播接收器是否正在运行?如果可能的话,如何检查?
adb shell dumpsys activity broadcasts
与调试器中的grep和断点组合使用,您可以找出您的广播是否在某个时间注册。
这应该有助于静态注册的接收器,但我自己没有使用过:
adb shell dumpsys package
如果您想在运行时检查它,可以存储一个全局的boolean
变量,并将其设置为false
,在onReceive()
内部将其设置为true
,在onReceive()
退出之前将其设置回false
。
您随时可以检查此全局变量以确定该广播接收器是否正在运行。
如果您的意思是要知道它是否起作用,请向日志记录示例发送一条消息。
onReceive(){
Log.d("my broadcast","works");
}
BroadcastReceiver
不应该在后台运行。它将在有限的范围内被唤醒和终止。
BroadcastReceiver
并不是永久运行的。要么在清单中注册一个BroadcastReceiver
,使其能够接收各种Intents
,要么在代码中动态地注册/注销。如果你想知道它何时(如果)被触发,那么只需使用Log
方法在 logcat 中跟踪即可。 - Squonk