2011-09-13 42 views
2

我開始一個IntentService。在onHandleIntent()我做了那個叫請求完成時,像這樣處理程序的HTTP請求:如何在onHandleIntent()完成時不結束Android IntentService?

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

onHandleIntent()立即完成,HTTP請求返回之前。該請求確實返回,但ServiceIntent線程已被銷燬並且doStuff()不會運行。

什麼是處理回調Handler結構像這樣一個ServiceIntent的最佳方式是什麼?

+0

doStuff()聲明在哪裏?這個處理程序看起來不太合適。你的意思是像新的Handler(){int doStuff(){...}}? – Macondo2Seattle

+0

對不起,doStuff()並不存在。它是一個佔位符,說那裏的代碼永遠不會被執行。 –

+0

你能發佈實際的代碼嗎?從這段代碼中不清楚你如何指定回調。謝謝! – Macondo2Seattle

回答

4

不幸的是,你沒有。 IntentService意味着排隊同步工作塊,在另一個線程中完成它們,然後完成。您必須創建自己的服務。您可以查看source codeIntentService,並從那裏開始。最重要的是,您需要在回撥完成後撥打stopSelf,而不是在onHandleIntent之後。

相關問題