当sendBroadcast(intent)运行良好时,adb shell广播不起作用

时间:2016-08-26 21:19:09

标签: android android-intent broadcastreceiver adb broadcast

我有一个类注册的接收器如下:

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

我是否正确使用添加命令?

1 个答案:

答案 0 :(得分:0)

LocalBroadcastManager是一个帮助程序,用于注册和发送Intent广播到进程中的本地对象。与Contenxt.sendBroadcast()相比,这有一个数量限制,其中之一是其他应用程序无法将这些广播发送到您的应用。