使用intent.action.BOOT_COMPLETED时获取空指针

时间:2014-10-28 00:17:05

标签: android broadcastreceiver alarmmanager android-broadcast android-alarms

当我尝试从here实现示例代码时,我得到了空指针异常。我在第2点和第3点的“设备启动时启动警报”部分中的示例代码有些令人困惑。以下是触发警报的main class和我的broadcast receiver类接收广播并触发一个动作,以及我的manifest file。我的logcat空指针异常错误指向广播接收器类中的if块语句。我的问题是:

  1. 我是否正确地将示例中的代码实现到我的项目中?如果没有,请给我一个正确的。因为我不想在设备重启时取消闹钟。我将不胜感激,谢谢。

2 个答案:

答案 0 :(得分:5)

变化:

if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))

为:

if("android.intent.action.BOOT_COMPLETED".equals(intent.getAction()))

所以它正确处理null个动作字符串。这应该可以清除您遇到的崩溃。

答案 1 :(得分:1)

在您的清单中,您将启用设置为false。这可能会阻止您的BroadcastReceiver工作。

要至少解决NullPointerException,请尝试: if("android.intent.action.BOOT_COMPLETED".equals(intent.getAction()){...}

虽然,你的意图仍然可能为空,