广播接收器未被触发

时间:2015-10-23 15:52:38

标签: android broadcastreceiver android-broadcastreceiver

这应该相当容易,但我不知道怎么能触发广播接收器的onReceive方法。详情如下:

App B提供广播接收器。 清单:

<receiver android:name=".MyNotificationReceiver">
            <intent-filter>
                <action android:name="com.go.foo.A_ACTION" />
            </intent-filter>
        </receiver>

Java:

public class MyNotificationReceiver extends BroadcastReceiver {

    private final String TAG= "MyNotificationReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "this is not shown"     , Toast.LENGTH_LONG).show();
    }
}

App A是Broadcast Sender App:

爪哇

            Intent intent = new Intent();
            intent.setAction("com.go.foo.A_ACTION");
            sendBroadcast(intent);
            Log.d(TAG, "broadcast intent sent...");

我可以看到发送广播的日志声明,但接收器的onReceive()回调没有被触发。我做错了吗?

2 个答案:

答案 0 :(得分:0)

有趣的是它为什么不起作用。试一试。我知道exportedenabled的默认值为true。但还是试一试。

<receiver android:name=".MyNotificationReceiver" android:enabled="true" android:exported="true">
    <intent-filter>
        <action android:name="com.go.foo.A_ACTION" />
    </intent-filter>
</receiver>

答案 1 :(得分:0)

今天学到了新的东西。从Android 4.1开始,系统不再向没有活动的应用程序组件发送广播。收到的广播在清单中添加活动后开始工作。