2014-10-13 7 views

답변

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을 반환 할 수 있습니다.

+0

mExtras가 이미 번들 일 때 새로운 번들 (mExtras)이 필요한 이유는 무엇입니까? – JohnyTex

+1

번들 사본을 반환하려면 원본 mExtras 번들은 수정되지 않습니다. – ToYonos

1

그들은 확실히 동일하지 .... 내가 이상한 찾아 내 추락 서비스의 재시작에 NullPointerException를 얻을. 알아내는 동안 intent.getExtras()null을 반환하면 첫 번째 변형이 NPE를 유발합니다. 두 번째 변형은 자체 null 검사를 수행하고 추가 값이 없으면 기본값을 반환합니다.

더 많은 코드를 보지 않고 예상되는 추가 기능을 얻지 못하는 이유에 대해 추측 할 수 없습니다. 의도 소스 코드에서

+0

나는 알고 있습니다. 서비스를 다시 시작할 때 추가 기능이 다시 전달되는 것은 예상되는 동작입니까? 옳은? – JohnyTex