我正在研究一些我不太熟悉的大型项目。我有一个本地广播事件,它从脚本注册。
context.registerReceiver(stReceiver, stIntents);
private BroadcastReceiver stReceiver = new BroadcastReceiver() {
@SuppressWarnings("unchecked")
@Override
public void onReceive(Context context, Intent intent) {
}
};
我需要找出这个broadcastReceiver来自哪里?有没有办法找出哪个班级.sendBroadcast(intent);
来电?
答案 0 :(得分:1)
我不是百分百肯定,这是否有效但是试一试。
使用Log语句在intent.getClass().getName()
函数中打印onReceive
。
由于意图是从调用类传递的,因此它将提供类名。
答案 1 :(得分:0)
AFAIK context.registerReceiver(stReceiver, stIntents);
本身就是.sendBroadcast(intent);
。
.sendBroadcast(intent);
用于全球广播。对于本地registerReceiver(BroadcastReceiver receiver, IntentFilter filter)
来说,足以启动广播。
I need to find out where is this broadcastReceiver calling from?
所以在你的情况下context.registerReceiver(stReceiver, stIntents);
本身就是起点。
欲了解更多信息:
http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html
答案 2 :(得分:0)
您可以检查Intent的操作。并搜索项目中的操作
String action = intent.getAction();
答案 3 :(得分:-1)
You can put check
like this
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
//Do your part
}
}
In place of Intent.ACTION_MEDIA_BUTTON you can use your own action you mention in the intent filter while registering a receiver