0

这应该相当容易,但我无法触发广播接收器的 onReceive 方法。详情如下:

App B 提供了一个广播接收器。显现:

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

爪哇:

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() 回调没有被触发的日志语句。难道我做错了什么?

4

2 回答 2

0

有趣的是为什么它不起作用。试试这个。exported我知道和的默认值enabledtrue。但还是可以试试看。

<receiver android:name=".MyNotificationReceiver" android:enabled="true" android:exported="true">
    <intent-filter>
        <action android:name="com.go.foo.A_ACTION" />
    </intent-filter>
</receiver>
于 2015-10-23T16:10:13.713 回答
0

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

于 2015-10-26T02:27:16.290 回答