试图让广播接收器没有过滤器

时间:2012-01-13 23:35:03

标签: android broadcastreceiver

IntentFilter intentFilter = new IntentFilter("test");
registerReceiver(mReceiver, intentFilter);

我希望没有像registerReceiver(mReceiver, null)这样的过滤器,但我的应用程序崩溃了。我可以将new IntentFiler()作为空文件管理器吗?

1 个答案:

答案 0 :(得分:7)

因为当通过null的条件没有匹配时,BroadcastReceiver返回IntentFilter,所以API无法实现您希望实现的目标(我假设将任何和所有广播发送到mReceiver)。

你当然可以指定一个空的IntentFilter,但这将是无用的,因为注册接收器不会导致它捕获任何广播(除非它们直接针对接收器,如MisterSquonk所述)在评论中)。否则,您必须准确知道要使用BroadcastReceiver捕获哪些广播,然后在IntentFilter中指定条件。