2010-07-24 1 views
2

특정 서비스가있는 다른 서비스에서 서비스를 시작하려고합니다. 그러나 시작한 서비스에서 해당 추가 항목을 검색 할 수 없습니다. .getIntExtra은 NullPointerException을 반환합니다.

Intent Extras in service onStart()를 검색 할 수 없습니다.

이 내가에게 서비스를 시작 방법입니다

@Override  
public void onStart(Intent intent, int startId){ 
    super.onStart(intent, startId); 
    mAppWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1); 
} 
:

Intent serviceIntent = new Intent(context, RefreshService.class); 
serviceIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); 

PendingIntent contentIntent = PendingIntent.getService(this, 0, serviceIntent, 0); 
updateViews.setOnClickPendingIntent(R.id.btnRefresh, contentIntent); 


내가 에 노력하고있어 방법이를받을를 시작 서비스의 엑스트라

예를 들어 mAppWidgetId은 항상 기본 값을 사용합니다. e -1.

내가 뭘 잘못하고 있니? 당신의 도움에 대한


감사합니다,

답변

1

내가있는이 잘 작동 .setAction.setFlags를 통해 내 사용자 지정 값을 전송하는 대신 .putExtras하여 "해결" . .getAction.getFlags

0
+0

내 답변에 감사드립니다.하지만 제 경우에는 시작된 서비스에 아무런 문제가없는 것으로 보입니다. 가장 최근의 질문이 아닙니다. 그래도 FLAG_UPDATE_CURRENT를 추가하려고 시도했지만 도움이되지 않습니다. -/ – Nick

+0

ACTually, 기다림, 두 충돌하는 문장입니다 - 처음에는 getIntExtra가 NPE를 던졌습니다 (의도가 null임을 나타냄). -1을 반환합니다 (여분이 존재하지 않거나 실제로 -1을 전달함 - 올바른 값을 전달했음을 확인 했습니까?). – EboMike

+0

두 번째 코드 블록의 네 번째 줄을 보면 다음과 같습니다. getIntExtra는 "-1"로 해석합니다.이 값은 의도 된 값이 아닌 경우에만 기본값으로 사용됩니다. 기본값을 지정하지 않고 추가로 쿼리하면 NPE를 얻을 수 있습니다. – Nick

관련 문제