2011-04-21 73 views
0

我正在爲Web服務構建此客戶端。 幾乎所有的東西都向服務器發出請求,而現在我所做的是,我打開一個新線程並將所有請求放在同一個線程中。這意味着我正在線程中以串行方式提出所有請求,並且變成了等待用戶的很多請求。爲了使應用程序更快,我希望以異步方式提出每個服務器請求。使用AsyncTask在Android上實現異步HTTP請求

我有一個網絡類,它可以處理我需要的所有HTTP請求,我正在考慮這樣做,以便每個請求都可以啓動它自己的線程。

我正在考慮爲此使用ASyncTask,但我注意到使用ASyncTask我需要每個我的http請求(一個類爲GET,POST,PUT等)的類。這是做這件事的最好方法嗎?有沒有更高效/乾淨的方式來做到這一點?你們有什麼建議。

+1

爲什麼你認爲使用'AsyncTask'你必須爲每個http請求創建一個類? 'AsyncTask'只是將一些工作卸載到一個單獨的線程,並不強制任何實現模式。只需從'doInBackground'調用網絡類即可。 – 2011-04-21 03:53:56

+0

denis.solonenko:嗯。這是一個想法。我會試着去看看它是如何工作的。 – DallaRosa 2011-04-21 05:54:02

回答

1

看起來像一個設計決定,將取決於你的準確性。 Android中有各種方式執行任務,具體取決於用戶是否正在等待某些數據,或者稍後在後臺任務完成時通知他們。

我建議你看看this帖子,比較Android中的各種任務機制。除此之外,還要通過java.util.concurrent包。

對不起,這不是一個具體的答案,而是從我身上 - 它主要取決於你如何努力爲用戶服務。所以人們只能提出想法。希望這可以幫助。

+0

謝謝!是的,這是一個設計決定,我真的希望瞭解要做什麼。那篇文章非常有趣,我正在閱讀它! – DallaRosa 2011-04-21 05:55:52