1. ホーム
  2. android

[解決済み] サービス開始のためのAndroid onCreateまたはonStartCommand

2022-09-25 11:39:26

質問

通常、Androidサービスを作成する場合、私は onCreate メソッドを実装しますが、私の最後のプロジェクトではこれがうまくいきません。私は onStartCommand を実装してみましたが、これは動作するようです。

問題は、私がサービスを実装しなければならないとき、どのメソッドが必要なのか?どのメソッドを実装しなければならないのでしょうか? onCreate , onStartCommand それとも両方?また、それぞれの役割は何ですか?

どのように解決するのですか?

onCreate() が呼び出されたとき Service オブジェクトがインスタンス化されたとき (つまり、サービスが 作成された ). このメソッドでは、一度だけ行う必要のあること(例えば、いくつかの変数の初期化など)を行う必要があります。 onCreate() は一度だけ呼ばれます。 インスタンス化されたオブジェクトごとに .

実装する必要があるのは onCreate() を実装する必要があります。 一度だけ .

onStartCommand() というのは 毎回 を使ってサービスを開始します。 startService(Intent intent) . これはつまり onStartCommand() は複数回呼び出される可能性があるということです。このメソッドで必要なことは その都度 クライアントがあなたのサービスに何かを要求するたびに。これはあなたのサービスが何をするのか、そしてどのようにクライアントと通信するのか(そしてその逆も)に大きく依存します。

もしあなたが onStartCommand() を実装していない場合、その情報は Intent に渡す情報を得ることができません。 onStartCommand() に渡され、あなたのサービスは有用な作業をすることができないかもしれません。