특정 서비스가있는 다른 서비스에서 서비스를 시작하려고합니다. 그러나 시작한 서비스에서 해당 추가 항목을 검색 할 수 없습니다. .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.
내가 뭘 잘못하고 있니? 당신의 도움에 대한
감사합니다,
닉
내 답변에 감사드립니다.하지만 제 경우에는 시작된 서비스에 아무런 문제가없는 것으로 보입니다. 가장 최근의 질문이 아닙니다. 그래도 FLAG_UPDATE_CURRENT를 추가하려고 시도했지만 도움이되지 않습니다. -/ – Nick
ACTually, 기다림, 두 충돌하는 문장입니다 - 처음에는 getIntExtra가 NPE를 던졌습니다 (의도가 null임을 나타냄). -1을 반환합니다 (여분이 존재하지 않거나 실제로 -1을 전달함 - 올바른 값을 전달했음을 확인 했습니까?). – EboMike
두 번째 코드 블록의 네 번째 줄을 보면 다음과 같습니다. getIntExtra는 "-1"로 해석합니다.이 값은 의도 된 값이 아닌 경우에만 기본값으로 사용됩니다. 기본값을 지정하지 않고 추가로 쿼리하면 NPE를 얻을 수 있습니다. – Nick