adb shell 广播不起作用,而 sendBroadcast(intent) 运行良好
adb shell broadcast not work while sendBroadcast(intent) works well
我有一个 class 注册接收者,如下所示:
onStart() {
IntentFilter filter = new IntentFilter();
filter.addAction("ActionName");
LocalBroadcastManager.getInstance(this).registerReceiver(receiver, filter);
}
onStop() {
localBroadcastManager.unregisterReceiver(receiver);
}
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_TAG, String.format("Broadcast received [action=%s]", intent.getAction()));
}
}
在其他一些classes中,我使用代码来广播Intent。效果很好。
Intent intent = new Intent("ActionName");
intent.putExtra("Extra", someObject);
LocalBroadcastManager.getInstance(service).sendBroadcast(intent);
不过,我尝试使用adb shell来触发这个功能。它从不响应。
adb shell am broadcast -a ActionName -e Extra someObject
我是否正确使用添加命令?
LocalBroadcastManager
是一个帮助程序,用于注册 Intent 广播并将其发送到进程中的本地对象。与 Contenxt.sendBroadcast()
相比,这有数量限制,其中之一是其他应用程序无法将这些广播发送到您的应用程序。
我有一个 class 注册接收者,如下所示:
onStart() {
IntentFilter filter = new IntentFilter();
filter.addAction("ActionName");
LocalBroadcastManager.getInstance(this).registerReceiver(receiver, filter);
}
onStop() {
localBroadcastManager.unregisterReceiver(receiver);
}
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_TAG, String.format("Broadcast received [action=%s]", intent.getAction()));
}
}
在其他一些classes中,我使用代码来广播Intent。效果很好。
Intent intent = new Intent("ActionName");
intent.putExtra("Extra", someObject);
LocalBroadcastManager.getInstance(service).sendBroadcast(intent);
不过,我尝试使用adb shell来触发这个功能。它从不响应。
adb shell am broadcast -a ActionName -e Extra someObject
我是否正确使用添加命令?
LocalBroadcastManager
是一个帮助程序,用于注册 Intent 广播并将其发送到进程中的本地对象。与 Contenxt.sendBroadcast()
相比,这有数量限制,其中之一是其他应用程序无法将这些广播发送到您的应用程序。