ここで何が悪いのかわからない。
Activity.java:
...
Intent intent = new Intent(Activity.this, Service.class);
intent.putExtra(Service.KEY_TEST, "123456789");
startService(intent);
...
Service.java:
...
private Intent intent;
public static final String KEY_TEST;
@Override
public void onCreate() {
super.onCreate();
Log.d("TEST", intent.getStringExtra(KEY_TEST)); // when I remove this line,
// it works, otherwise gives NullPointerException and FC's
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
this.intent = intent;
return START_STICKY;
}
...
サービスは明らかに、アクティビティから送信されたエクストラを受け取りません。以前に送信したエクストラを取得しようとすると、アプリフォースが閉じ、LogCatがNullPointerExceptionを出します。エクストラを取得しようとしている行を削除すると、アプリは強制的に閉じられませんが、明らかにエクストラも受け取りません。