我很困惑:
intent.getExtras.getInt()
一样吗intent.getIntExtra()
?
如果我使用 启动我的服务START_REDELIVER_INTENT
,附加内容是否会包含在意图中?
我NullPointerException
重新启动崩溃的服务,我觉得很奇怪......
我很困惑:
intent.getExtras.getInt()
一样吗intent.getIntExtra()
?
如果我使用 启动我的服务START_REDELIVER_INTENT
,附加内容是否会包含在意图中?
我NullPointerException
重新启动崩溃的服务,我觉得很奇怪......
来自意图源代码:
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之外,同样的事情。
它们并不完全相同。正如您所发现的,如果intent.getExtras()
返回,第一个变体将导致 NPE null
。第二个变体进行自己的空值检查,如果不存在额外的值,则返回默认值。
我无法推测为什么您在没有看到更多代码的情况下没有获得预期的 Extras。