2013-07-20 42 views
3

我正在使用服務將文件上傳到服務器,並且我在上傳文件後得到了一些結果我希望從服務中獲得一些回調,例如上傳完成時,得到結果時,如果在特定時間沒有得到結果,網絡失去了等等,根據這些回電我需要改變我的活動從我的服務被稱爲。目前我正在使用不同的廣播發送和接收。android:如何獲取從服務到活動的回調?

Intent w = new Intent("<KEY>"); 
w.putExtra("***", ***); 
sendBroadcast(w); 

它現在工作正常,但我想知道它是正確的方式來做這樣或有沒有更好的方法? 我也對通過Handler處理活動和從服務傳遞消息隊列的紅色,但我不舒服這一點。

回答

1

使用BroadcastReceivers非常好。 但是,如果你的worker上傳線程需要一次運行,那麼AsyncTask可能更適合你的需求。您在doInBackground中完成您的工作,然後使用onPostExecution()更新您的GUI。

正如你所說,你也可以在你的活動中使用一個Handler。但是,您的服務需要是一個綁定的服務,以便您能夠將處理程序傳遞給服務。

對於非常簡單的事情,我建議您使用AsyncTask。

相關問題