0

サービスが開始されません。

サービス内で次のonCreate方法を使用しました。

public void onCreate(Bundle savedInstanceState){

        wsConnection = new WSConnection();
        handler = new Handler();
        Bundle b = savedInstanceState;
        this.dbManager = b.getParcelable("object");

        super.onCreate();
        Log.i("prova","servizio attivato");
        TimerTask task = new TimerTask(){
            public void run(){


                FindPendingData();
            }

        };
        timer = new Timer();
        //timer.schedule(task, cal.getTime());
        timer.schedule(task, 0, 30000);
    }

一方、次のコードは私のサービスを開始します:

        Intent intent = new Intent(this, myService.class);
        intent.putExtra("object", myObject);
        startService(intent);

オブジェクトの拡張Objectと実装Parcelable

また、マニフェストで次のように宣言します。

<service android:name="myPackage.myService" /> 

どこに問題があるのでしょうか?

編集: Bundle パラメータを削除しようとしたところ、サービスが開始されました! しかし、私は理由を理解していません!誰かが私を助けることができますか?

4

1 に答える 1

0

Intent データを取得するには、 Service の onCreate の代わりにonStartCommand(Intent, int, int)またはonStart()を使用します。

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
      // get intent data here
    return START_STICKY;
}

コメントOPのように:

エラーなし。私は常にこのコードを使用してサービスを開始しますが、通常はこれでうまくいきます

ただし、doc onCreate()で見た 場合、オーバーライドしている場合はパラメーターを取りません

于 2013-01-02T15:40:58.950 に答える