115

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

問題は、サービスを実装する必要がある場合、どのメソッドが必要かということです。どのメソッドを実装する必要がありますか? onCreateonStartCommand、または両方?そして、それぞれの役割は何ですか?

4

2 に答える 2

203

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

実際に何かを一度だけonCreate()初期化したい/必要がある場合にのみ実装する必要があります。

onStartCommand()は、クライアントが を使用してサービスを開始するたびに呼び出されますstartService(Intent intent)。これは、onStartCommand()が複数回呼び出される可能性があることを意味します。クライアントがサービスから何かを要求するたびに、このメソッドで必要なことを実行する必要があります。これは、サービスの機能とクライアントとの通信方法 (およびその逆) に大きく依存します。

実装しないと、クライアントが渡すonStartCommand()から情報を取得できず、サービスが有用な作業を実行できない可能性があります。IntentonStartCommand()

于 2013-01-06T14:00:11.093 に答える