2

ここで何が悪いのかわからない。

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を出します。エクストラを取得しようとしている行を削除すると、アプリは強制的に閉じられませんが、明らかにエクストラも受け取りません。

4

2 に答える 2

5

この行Log.d("TEST", intent.getStringExtra(KEY_TEST));を入れて、

onStartCommand(Intent intent, int flags, int startId)方法..

編集:

耐用年数サイクルの詳細については、この耐用年数サイクルを参照してください。

于 2011-11-18T12:39:17.230 に答える
0

onStartCommand()は、onCreate()メソッドの後に発生します。

于 2018-03-07T11:06:07.697 に答える