2011-09-16 19 views
2

私は、Drupal Servicesモジュールへの非同期呼び出しを処理するIntentServiceを持っています。現在、DrupalXmlRpcServiceオブジェクトはonHandleIntentで毎回初期化されています。これは、スレッドが終了した後にサービスが終了するという印象を受けたためです。このオブジェクトをIntentServiceオブジェクトのコンストラクタで初期化する必要がありますか?IntentServiceライフサイクル

答えて

1

オブジェクトを作成するコストが高く、頻繁に使用する場合は、グローバルApplicationオブジェクトに参照を保存するか、シングルトンにすることを検討してください(スレッドセーフであることを確認してください)。あなたの質問は、複数のインテントを同じサービスに送信すると、handleIntent()が複数回呼び出される可能性があります。そのため、コンストラクタでinitを実行したい場合があります(ただし、時間がかかりすぎてメインスレッドをブロックする可能性があります)。

+0

は、IntentServiceのコンストラクタに入れて終了しました。 – SeanPONeil