2011-09-13 11 views
2

私はIntentServiceを開始します。onHandleIntent()が終了したときにAndroid IntentServiceを終了させない方法は?

public function onHandleIntent(){ 
    makeRequest("http://somehthing.com", new Handler(){ 
     doStuff(); 
    }); 
} 

onHandleIntent()HTTPリクエストが戻る前に、すぐに終了:onHandleIntent()で、私はそうのように、要求が完了したときに呼び出されるハンドラとHTTP要求を行います。要求は返されますが、ServiceIntentスレッドはすでに破棄されており、doStuff()は実行されません。

ServiceIntentでこのようなコールバックハンドラ構造を処理する最善の方法は何ですか?

+0

doStuff()はどこで宣言されていますか?このハンドラについては何かが正しくないように見えます。あなたは新しいHandler(){int doStuff(){...}}のようなものを意味しましたか? – Macondo2Seattle

+0

申し訳ありませんが、doStuff()は実際には存在しません。そこにあるコードは決して実行されないと言うプレースホルダです。 –

+0

実際のコードを掲載することはできますか?このスニペットから、コールバックの指定方法は明確ではありません。ありがとう! – Macondo2Seattle

答えて

4

残念ながら、あなたはしません。 IntentServiceは、同期の作業ブロックを待ち行列に入れ、別のスレッドで完了してから終了することを意味します。独自のサービスを作成する必要があります。 IntentServiceの場合はsource codeを見て、そこから始めてください。最も重要なことは、onHandleIntentの後ではなく、コールバックが完了した後にstopSelfに電話することです。

関連する問題