我有一个类注册的接收器如下:
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()));
}
}
在其他一些类中,我使用代码来广播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
我是否正确使用添加命令?
答案 0 :(得分:0)
LocalBroadcastManager
是一个帮助程序,用于注册和发送Intent广播到进程中的本地对象。与Contenxt.sendBroadcast()
相比,这有一个数量限制,其中之一是其他应用程序无法将这些广播发送到您的应用。