通常、Android サービスを作成するときにonCreate
メソッドを実装しますが、最後のプロジェクトではこれが機能しません。を実装してみonStartCommand
ましたが、これはうまくいくようです。
問題は、サービスを実装する必要がある場合、どのメソッドが必要かということです。どのメソッドを実装する必要がありますか? onCreate
、onStartCommand
、または両方?そして、それぞれの役割は何ですか?
通常、Android サービスを作成するときにonCreate
メソッドを実装しますが、最後のプロジェクトではこれが機能しません。を実装してみonStartCommand
ましたが、これはうまくいくようです。
問題は、サービスを実装する必要がある場合、どのメソッドが必要かということです。どのメソッドを実装する必要がありますか? onCreate
、onStartCommand
、または両方?そして、それぞれの役割は何ですか?
onCreate()
Service
オブジェクトがインスタンス化されたとき (つまり、サービスが作成されたとき) に呼び出されます。このメソッドでは、一度だけ行う必要があることを行う必要があります (つまり、いくつかの変数を初期化するなど)。インスタンス化されたオブジェクトごとonCreate()
に 1回だけ呼び出されます。
実際に何かを一度だけonCreate()
初期化したい/必要がある場合にのみ実装する必要があります。
onStartCommand()
は、クライアントが を使用してサービスを開始するたびに呼び出されますstartService(Intent intent)
。これは、onStartCommand()
が複数回呼び出される可能性があることを意味します。クライアントがサービスから何かを要求するたびに、このメソッドで必要なことを実行する必要があります。これは、サービスの機能とクライアントとの通信方法 (およびその逆) に大きく依存します。
実装しないと、クライアントが渡すonStartCommand()
から情報を取得できず、サービスが有用な作業を実行できない可能性があります。Intent
onStartCommand()