14

换句话说 :

@Override
public void onReceive(Context context, Intent intent) {
    final String action = intent.getAction(); // can intent==null here ?
    // could it ever throw a NPE ?
}

我需要一劳永逸地解决这个问题,所以请不要如果和但是。我会检查 null 但我怀疑它不是必需的,因此检查起来很笨拙且不雅。我在文档中搜索过,但没有找到任何东西

编辑:在谷歌群组中询问 - 看看那里有一些有趣的观点

4

1 回答 1

9

onReceivein a由带有它注册到的操作的BroadcastReceiveran 触发。Intent因此,如果 Intent 不是一个实例Intent而不是 null,则该onReceive方法将永远不会被调用。

话虽如此,奇怪的事情可能会发生。我没有查看谷歌围绕广播编写的代码,所以虽然它的正确用法永远不会为空,但检查是个好主意,因为它来自你无法控制的代码。

于 2013-07-08T20:45:08.820 回答