2

我很困惑:

intent.getExtras.getInt()一样吗intent.getIntExtra()

如果我使用 启动我的服务START_REDELIVER_INTENT,附加内容是否会包含在意图中?

NullPointerException重新启动崩溃的服务,我觉得很奇怪......

4

2 回答 2

4

来自意图源代码:

private Bundle mExtras;

// [...]

public int getIntExtra(String name, int defaultValue) {
    return mExtras == null ? defaultValue :
    mExtras.getInt(name, defaultValue);
}

public Bundle getExtras() {
    return (mExtras != null)
        ? new Bundle(mExtras)
       : null;
}

所以是的。getExtras()除了可能返回 null之外,同样的事情。

于 2014-10-13T10:38:21.077 回答
1

它们并不完全相同。正如您所发现的,如果intent.getExtras()返回,第一个变体将导致 NPE null。第二个变体进行自己的空值检查,如果不存在额外的值,则返回默认值。

我无法推测为什么您在没有看到更多代码的情况下没有获得预期的 Extras。

于 2014-10-13T10:36:28.003 回答